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/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/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/workflows/auto_changelog.yml b/.github/workflows/auto_changelog.yml
index f47c2936980fe..e08224dfb9a72 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
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..fcf44d00558ec 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
@@ -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,11 @@ 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
+ name: Completion Gate
+ needs: [ test_windows, compare_screenshots, compile_all_maps, run_linters ]
+ runs-on: ubuntu-latest
+ steps:
+ - name: Mandatory Empty Step
+ run: exit 0
diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml
index e1b8774905f13..b3eeeb3fb1e56 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
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/update_tgs_dmapi.yml b/.github/workflows/update_tgs_dmapi.yml
index 232c02c0ecbed..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
@@ -29,12 +32,23 @@ jobs:
- name: Commit and Push
continue-on-error: true
run: |
- git config user.name "tgstation-server-ci[bot]"
- git config user.email "161980869+tgstation-server-ci[bot]@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() }}
@@ -45,4 +59,4 @@ jobs:
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/README.md b/README.md
index 805612260ef45..912852978f6f5 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,8 @@ This is the codebase forked from the /tg/station flavoured fork of SpaceStation
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_pizza.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm
index 0e78558d6f38c..121f9e4ea45d4 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
},
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/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_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_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/SpaceRuins/dangerous_research.dmm b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm
index a7eac1fe1a8b1..edd734ee6f586 100644
--- a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm
+++ b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm
@@ -1062,7 +1062,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research/lab)
"oJ" = (
-/obj/structure/closet/crate/medical,
+/obj/structure/closet/crate/secure/interdyne,
/obj/item/stack/medical/suture/emergency,
/obj/item/stack/medical/gauze/twelve,
/obj/item/reagent_containers/hypospray/medipen/blood_loss,
@@ -2155,7 +2155,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research/lab)
"BG" = (
-/obj/structure/closet/crate,
+/obj/structure/closet/crate/secure/interdyne,
/obj/item/stack/sheet/mineral/plasma/thirty,
/obj/item/stack/sheet/mineral/wood/fifty,
/obj/item/stack/sheet/iron/fifty,
@@ -3658,7 +3658,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research)
"VQ" = (
-/obj/structure/closet/crate,
+/obj/structure/closet/crate/secure/interdyne,
/obj/item/reagent_containers/cup/glass/waterbottle/large,
/obj/item/reagent_containers/cup/glass/waterbottle/large,
/obj/item/reagent_containers/cup/glass/waterbottle/large,
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/RandomZLevels/TheBeach.dmm b/_maps/RandomZLevels/TheBeach.dmm
index 64cdcbb6d362e..41fcd3280d490 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
@@ -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;
@@ -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;
@@ -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{
@@ -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/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm
index 6f565143e790e..be1301a9fbabf 100644
--- a/_maps/RandomZLevels/snowdin.dmm
+++ b/_maps/RandomZLevels/snowdin.dmm
@@ -1909,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
@@ -5245,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)
@@ -5830,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)
@@ -25007,7 +25002,7 @@ Kd
ex
fJ
gA
-ht
+hq
hW
iH
jz
diff --git a/_maps/deathmatch/lattice_battles.dmm b/_maps/deathmatch/lattice_battles.dmm
new file mode 100644
index 0000000000000..eab56ca3064a0
--- /dev/null
+++ b/_maps/deathmatch/lattice_battles.dmm
@@ -0,0 +1,994 @@
+//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/playeronly_barrier,
+/turf/open/misc/asteroid/moon,
+/area/deathmatch/fullbright)
+"cN" = (
+/obj/structure/railing/unbreakable{
+ dir = 8
+ },
+/obj/effect/playeronly_barrier,
+/turf/open/misc/asteroid/moon,
+/area/deathmatch/fullbright)
+"df" = (
+/obj/structure/lattice/catwalk,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/chasm,
+/area/deathmatch/fullbright)
+"dM" = (
+/turf/open/chasm,
+/area/deathmatch/fullbright)
+"eK" = (
+/obj/structure/lattice/catwalk,
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/decal/cleanable/dirt/dust,
+/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/playeronly_barrier,
+/turf/open/misc/asteroid/moon,
+/area/deathmatch/fullbright)
+"ho" = (
+/obj/structure/flora/lunar_plant/style_1,
+/obj/effect/playeronly_barrier,
+/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/playeronly_barrier,
+/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/playeronly_barrier,
+/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/playeronly_barrier,
+/turf/open/misc/asteroid/moon,
+/area/deathmatch/fullbright)
+"tL" = (
+/obj/structure/railing/unbreakable,
+/obj/effect/playeronly_barrier,
+/turf/open/misc/asteroid/moon,
+/area/deathmatch/fullbright)
+"uJ" = (
+/obj/structure/railing/unbreakable{
+ dir = 4
+ },
+/obj/item/clothing/head/cone,
+/obj/effect/playeronly_barrier,
+/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/playeronly_barrier,
+/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/playeronly_barrier,
+/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/playeronly_barrier,
+/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/playeronly_barrier,
+/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/playeronly_barrier,
+/turf/open/misc/asteroid/moon,
+/area/deathmatch/fullbright)
+"NG" = (
+/obj/structure/lattice/catwalk,
+/obj/effect/decal/cleanable/dirt/dust,
+/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/playeronly_barrier,
+/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)
+"Sv" = (
+/obj/structure/lattice/catwalk,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/rubble,
+/turf/open/chasm,
+/area/deathmatch/fullbright)
+"SL" = (
+/obj/structure/flora/rock/pile/style_random,
+/obj/structure/flora/lunar_plant/style_3,
+/obj/effect/playeronly_barrier,
+/turf/open/misc/asteroid/moon,
+/area/deathmatch/fullbright)
+"Uy" = (
+/obj/item/clothing/head/cone,
+/obj/effect/playeronly_barrier,
+/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/playeronly_barrier,
+/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/playeronly_barrier,
+/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/playeronly_barrier,
+/turf/open/misc/asteroid/moon,
+/area/deathmatch/fullbright)
+"YH" = (
+/obj/effect/playeronly_barrier,
+/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
+df
+vk
+df
+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
+df
+Sv
+vk
+MF
+vk
+df
+MF
+vk
+vk
+MF
+gW
+jb
+gN
+gN
+gN
+"}
+(11,1,1) = {"
+gN
+gN
+gN
+CI
+tL
+MF
+vk
+df
+MF
+MF
+vk
+vk
+MF
+MF
+vk
+df
+vk
+vk
+df
+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
+df
+NG
+gN
+gN
+gN
+gN
+gN
+"}
+(13,1,1) = {"
+gN
+gN
+gN
+gN
+Yu
+MF
+MF
+eK
+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
+df
+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
+df
+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
+df
+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..1a3d307181d08 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,7 +477,7 @@
set_luminosity = 4
},
/turf/open/floor/engine/cult,
-/area/deathmatch/teleport)
+/area/deathmatch)
"DK" = (
/obj/structure/railing{
dir = 8
@@ -489,11 +489,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 +501,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 +572,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 +594,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 +636,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 +659,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 +690,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 +711,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 +736,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 +755,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..328055398e71a
--- /dev/null
+++ b/_maps/deathmatch/ragnarok.dmm
@@ -0,0 +1,2160 @@
+//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)
+"bb" = (
+/obj/structure/flora/coconuts,
+/turf/open/misc/dirt/jungle,
+/area/deathmatch)
+"bj" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/structure/bonfire/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/water/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/water/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/water/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/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/water/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/water/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/water/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)
+"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)
+"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/decal/cleanable/ants,
+/turf/closed/wall/heretic_rust,
+/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/water/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/water/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/water/jungle,
+/area/deathmatch)
+"Ds" = (
+/obj/effect/turf_decal/weather/dirt{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/water/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/water/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,
+/obj/effect/decal/cleanable/ants,
+/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/decal/cleanable/ants,
+/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" = (
+/turf/open/water/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)
+"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
+ },
+/turf/open/water/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/water/jungle,
+/area/deathmatch)
+"Px" = (
+/obj/structure/flora/tree/jungle/style_random,
+/turf/open/misc/grass/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)
+"RE" = (
+/obj/structure/bonfire/prelit,
+/turf/open/misc/grass/jungle,
+/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/water/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)
+"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/decal/cleanable/ants,
+/turf/open/misc/grass/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/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
+Yn
+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
+AO
+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
+qa
+Sw
+Sw
+oC
+UY
+UY
+EF
+UY
+mr
+dI
+lx
+PI
+Vm
+iJ
+TN
+qh
+FK
+wR
+Ig
+Ig
+Ig
+Ig
+"}
+(12,1,1) = {"
+Ig
+Ig
+wR
+ZY
+Ic
+FK
+FK
+sC
+LU
+pr
+Sw
+Ti
+fO
+lR
+hg
+Bd
+FK
+lx
+PI
+NX
+NQ
+NQ
+NQ
+TN
+CE
+DA
+Ig
+Ig
+Ig
+"}
+(13,1,1) = {"
+Ig
+Ig
+iJ
+TN
+TN
+TN
+qh
+FK
+FK
+FK
+cs
+FK
+eB
+SC
+FK
+sC
+iJ
+Ds
+PI
+Bp
+FK
+FK
+wR
+SE
+FK
+sC
+Ig
+Ig
+Ig
+"}
+(14,1,1) = {"
+Ig
+Ig
+SE
+NQ
+NQ
+NQ
+Kg
+TN
+qh
+FK
+FK
+iJ
+qh
+RL
+PI
+Do
+Kg
+Pi
+PI
+gx
+FK
+qa
+FK
+FK
+FK
+Du
+Ig
+Ig
+Ig
+"}
+(15,1,1) = {"
+Ig
+Ig
+sC
+sC
+FK
+bb
+SE
+NQ
+bv
+PI
+ou
+NQ
+Kg
+Ds
+ft
+Vv
+oO
+FK
+ZY
+qa
+GD
+qa
+jv
+Yn
+GD
+RW
+jL
+Ig
+Ig
+"}
+(16,1,1) = {"
+Ig
+Ig
+wP
+GD
+qa
+Wp
+ZY
+FK
+RL
+PI
+Bp
+bb
+SE
+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
+RE
+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
+Yn
+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
+RE
+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..caa2c41d93675 100644
--- a/_maps/icebox.json
+++ b/_maps/icebox.json
@@ -48,6 +48,9 @@
"job_changes": {
"Captain": {
"special_charter": "moon"
+ },
+ "Cook": {
+ "additional_cqc_areas": ["/area/station/service/bar/atrium"]
}
}
}
diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm
index 00961dbd7f5d6..09040a5d9031f 100644
--- a/_maps/map_files/Birdshot/birdshot.dmm
+++ b/_maps/map_files/Birdshot/birdshot.dmm
@@ -41227,9 +41227,9 @@
/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,
+/obj/machinery/vending/cytopro,
/turf/open/floor/iron/white,
/area/station/science/cytology)
"oig" = (
@@ -52468,6 +52468,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
+/obj/item/kirbyplants/random,
/turf/open/floor/iron/white,
/area/station/science/cytology)
"rYx" = (
@@ -53177,6 +53178,7 @@
name = "Detective Requests Console"
},
/obj/machinery/light/small/directional/west,
+/obj/structure/detectiveboard/directional/west,
/turf/open/floor/wood,
/area/station/security/detectives_office)
"smf" = (
@@ -93312,7 +93314,7 @@ hIm
azq
iTv
wMg
-wKr
+lql
vtr
mcV
iGq
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 8959abab5589d..39d7cd24bdd2e 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -24906,6 +24906,7 @@
/obj/effect/turf_decal/tile/purple/half/contrasted{
dir = 1
},
+/obj/machinery/vending/cytopro,
/turf/open/floor/iron,
/area/station/science/xenobiology)
"gfR" = (
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index b88647d4934a0..80c768e6a52a8 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -1,21 +1,13 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"aac" = (
-/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,
-/obj/machinery/scanner_gate/preset_guns,
-/turf/open/floor/iron/dark/textured_edge{
- dir = 8
- },
-/area/station/security/brig/entrance)
+"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,
@@ -31,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,
@@ -53,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
@@ -67,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
@@ -91,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,
@@ -107,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{
@@ -119,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{
@@ -174,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,
@@ -220,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";
@@ -240,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,
@@ -259,52 +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)
-"afy" = (
-/obj/structure/railing/corner/end/flip{
- dir = 8
- },
-/obj/machinery/status_display/ai/directional/north,
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
"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{
@@ -320,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,
@@ -356,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,
@@ -390,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,
@@ -414,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,
@@ -435,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,
@@ -455,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)
@@ -520,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
@@ -551,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)
@@ -601,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,
@@ -624,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,
@@ -702,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{
@@ -724,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
@@ -733,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,
@@ -756,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,
@@ -792,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
@@ -831,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
@@ -858,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
@@ -909,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,
@@ -918,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,
@@ -959,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/incident_display/delam/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,
@@ -1015,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,
@@ -1047,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,
@@ -1104,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,
@@ -1146,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
@@ -1163,21 +1228,38 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
-"asG" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/railing/corner/end{
- dir = 4
- },
-/obj/structure/lattice/catwalk,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
"asM" = (
/obj/machinery/light/directional/east,
/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"
@@ -1205,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,
@@ -1245,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
@@ -1252,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,
@@ -1273,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" = (
@@ -1323,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{
@@ -1373,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{
@@ -1389,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)
@@ -1425,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,
@@ -1458,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;
@@ -1470,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,
@@ -1503,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
@@ -1520,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
@@ -1537,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
@@ -1587,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"
@@ -1617,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
@@ -1651,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)
@@ -1670,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{
@@ -1705,23 +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)
+"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,
@@ -1738,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
@@ -1756,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{
@@ -1796,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)
@@ -1833,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" = (
@@ -1846,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
@@ -1871,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{
@@ -1888,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
@@ -1900,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,
@@ -1914,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,
@@ -1952,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,
@@ -1983,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";
@@ -1993,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,
@@ -2006,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,
@@ -2052,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{
@@ -2097,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"
@@ -2107,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,
@@ -2140,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,
@@ -2152,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,
@@ -2167,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
@@ -2220,6 +2358,25 @@
/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)
+"aJj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/station/service/library)
"aJm" = (
/obj/structure/cable,
/obj/machinery/door/window/left/directional/east{
@@ -2252,14 +2409,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,
@@ -2299,6 +2448,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{
@@ -2338,16 +2493,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)
-"aLo" = (
-/obj/machinery/airalarm/directional/west,
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
"aLy" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -2386,14 +2531,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,
@@ -2436,6 +2573,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
@@ -2456,18 +2600,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
@@ -2478,21 +2620,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,
@@ -2522,22 +2664,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
@@ -2562,11 +2730,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)
@@ -2599,6 +2788,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)
@@ -2618,11 +2814,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,
@@ -2644,30 +2835,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,
@@ -2696,15 +2881,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
@@ -2749,6 +2936,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{
@@ -2772,12 +2963,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
@@ -2819,17 +3004,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,
@@ -2854,6 +3028,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,
@@ -2861,6 +3048,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,
@@ -2875,22 +3067,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,
@@ -2900,6 +3076,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" = (
@@ -2913,12 +3092,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
@@ -2980,11 +3153,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
@@ -2994,12 +3199,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"
@@ -3008,20 +3212,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"
@@ -3029,6 +3231,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
@@ -3057,21 +3265,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{
@@ -3079,14 +3284,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,
@@ -3097,35 +3294,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{
@@ -3150,14 +3325,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
@@ -3188,6 +3396,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{
@@ -3203,28 +3430,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,
@@ -3239,6 +3479,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)
@@ -3249,39 +3498,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)
@@ -3340,6 +3562,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,
@@ -3364,6 +3594,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,
@@ -3402,13 +3639,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
@@ -3424,11 +3660,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,
@@ -3440,6 +3671,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
@@ -3462,6 +3700,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)
@@ -3492,6 +3740,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
@@ -3502,17 +3757,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";
@@ -3525,14 +3781,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"
@@ -3581,6 +3842,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,
@@ -3647,14 +3920,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,
@@ -3672,14 +3959,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,
@@ -3708,20 +3994,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
@@ -3761,6 +4037,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,
@@ -3843,12 +4132,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,
@@ -3865,6 +4153,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
@@ -3875,37 +4171,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
@@ -3929,14 +4209,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{
@@ -4014,6 +4304,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,
@@ -4065,15 +4377,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{
@@ -4153,6 +4465,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,
@@ -4183,10 +4503,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,
@@ -4205,21 +4532,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";
@@ -4239,6 +4560,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
@@ -4248,6 +4590,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{
@@ -4265,11 +4612,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,
@@ -4292,52 +4634,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
@@ -4368,23 +4678,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,
@@ -4393,11 +4702,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
@@ -4419,33 +4723,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,
@@ -4473,16 +4773,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,
@@ -4500,6 +4821,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
@@ -4514,10 +4848,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,
@@ -4532,6 +4869,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,
@@ -4558,15 +4904,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,
@@ -4609,23 +4946,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" = (
@@ -4647,14 +4975,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
@@ -4696,6 +5024,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
@@ -4724,6 +5067,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,
@@ -4753,6 +5104,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)
@@ -4797,39 +5162,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
@@ -4863,11 +5233,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"
@@ -4894,43 +5276,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,
@@ -4955,11 +5324,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,
@@ -5004,6 +5400,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
@@ -5022,12 +5422,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,
@@ -5047,6 +5441,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" = (
@@ -5086,11 +5481,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,
@@ -5099,6 +5489,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,
@@ -5110,18 +5510,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,
@@ -5142,14 +5540,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,
@@ -5157,20 +5547,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{
@@ -5178,15 +5575,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,
@@ -5199,15 +5587,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
@@ -5215,6 +5594,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,
@@ -5276,25 +5668,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
@@ -5303,24 +5676,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,
@@ -5352,14 +5707,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"
@@ -5390,24 +5746,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"
@@ -5426,12 +5764,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,
@@ -5446,32 +5793,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" = (
@@ -5485,6 +5815,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";
@@ -5561,32 +5897,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"
@@ -5604,20 +5934,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
@@ -5625,6 +5941,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" = (
@@ -5652,22 +5971,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,
@@ -5678,15 +6023,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,
@@ -5695,17 +6036,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{
@@ -5715,6 +6068,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,
@@ -5730,6 +6092,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,
@@ -5752,6 +6122,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;
@@ -5760,11 +6134,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;
@@ -5788,21 +6157,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{
@@ -5823,15 +6177,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,
@@ -5933,37 +6278,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
@@ -5973,14 +6287,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,
@@ -5990,13 +6296,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"
@@ -6015,6 +6319,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,
@@ -6047,19 +6370,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
@@ -6070,12 +6380,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,
@@ -6149,12 +6453,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;
@@ -6186,24 +6488,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;
@@ -6211,6 +6495,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"
@@ -6239,11 +6529,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,
@@ -6257,15 +6550,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
@@ -6275,15 +6559,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
@@ -6299,12 +6586,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,
@@ -6316,27 +6597,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{
@@ -6396,12 +6691,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,
@@ -6418,20 +6707,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,
@@ -6448,14 +6736,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,
@@ -6469,6 +6749,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,
@@ -6490,19 +6776,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
@@ -6535,18 +6808,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";
@@ -6568,21 +6836,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
@@ -6599,11 +6868,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,
@@ -6624,6 +6901,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,
@@ -6632,13 +6922,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
@@ -6647,13 +6945,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
@@ -6675,6 +6976,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
@@ -6706,6 +7016,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,
@@ -6713,6 +7030,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
@@ -6746,19 +7075,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,
@@ -6785,14 +7117,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{
@@ -6802,6 +7157,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{
@@ -6814,13 +7177,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,
@@ -6864,6 +7220,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,
@@ -6879,20 +7241,6 @@
dir = 1
},
/area/station/security/prison)
-"bXL" = (
-/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,
@@ -6915,10 +7263,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,
@@ -6932,12 +7276,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;
@@ -6961,6 +7299,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,
@@ -6978,6 +7324,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,
@@ -7042,26 +7397,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,
@@ -7070,34 +7436,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";
@@ -7113,18 +7499,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,
@@ -7144,56 +7518,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)
-"cbu" = (
-/obj/machinery/vatgrower{
- dir = 4
+"cby" = (
+/obj/effect/turf_decal/trimline/green/filled/line{
+ dir = 8
},
-/obj/effect/mapping_helpers/no_atoms_ontop,
-/turf/open/misc/asteroid/snow/icemoon,
-/area/icemoon/underground/explored)
+/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,
@@ -7226,6 +7583,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,
@@ -7260,6 +7635,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
@@ -7269,6 +7656,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
@@ -7297,13 +7689,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
@@ -7334,28 +7719,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{
@@ -7367,16 +7736,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
@@ -7400,6 +7774,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";
@@ -7411,6 +7803,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
@@ -7419,21 +7819,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";
@@ -7495,6 +7880,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{
@@ -7502,6 +7902,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"
@@ -7512,22 +7920,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
@@ -7540,19 +7932,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,
@@ -7570,6 +7949,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,
@@ -7595,10 +7978,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,
@@ -7655,16 +8055,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";
@@ -7685,6 +8080,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";
@@ -7697,13 +8101,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,
@@ -7727,23 +8124,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
@@ -7776,13 +8161,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,
@@ -7792,11 +8170,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,
@@ -7804,6 +8177,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,
@@ -7817,6 +8197,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
@@ -7831,12 +8218,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)
@@ -7851,30 +8232,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,
@@ -7920,21 +8281,6 @@
/obj/structure/closet/firecloset,
/turf/open/floor/plating,
/area/station/maintenance/aft/lesser)
-"cmd" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/smartfridge/drying,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/kitchen)
-"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"
@@ -7945,15 +8291,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{
@@ -7992,17 +8329,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,
@@ -8021,6 +8347,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" = (
@@ -8035,9 +8362,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" = (
@@ -8052,10 +8392,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"
@@ -8096,15 +8432,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,
@@ -8153,6 +8492,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
@@ -8189,10 +8533,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,
@@ -8201,6 +8541,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"
@@ -8216,13 +8563,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,
@@ -8233,24 +8573,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,
@@ -8266,8 +8594,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
@@ -8283,25 +8621,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,
@@ -8312,6 +8653,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"
@@ -8335,13 +8683,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,
@@ -8352,23 +8702,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
@@ -8383,6 +8723,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{
@@ -8392,6 +8739,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,
@@ -8402,10 +8755,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,
@@ -8421,16 +8770,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,
@@ -8472,10 +8824,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
@@ -8517,6 +8865,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{
@@ -8549,6 +8928,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
@@ -8566,12 +8958,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";
@@ -8590,6 +8976,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" = (
@@ -8616,10 +9006,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{
@@ -8644,6 +9044,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,
@@ -8661,17 +9066,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)
@@ -8696,12 +9106,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,
@@ -8722,20 +9126,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{
@@ -8778,43 +9168,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
@@ -8837,41 +9212,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{
@@ -8880,31 +9223,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,
@@ -8941,11 +9264,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,
@@ -8973,10 +9291,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)
@@ -9024,23 +9338,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{
- dir = 4
+"cBk" = (
+/obj/machinery/door/firedoor{
+ dir = 8
},
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
+/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/siding/wood{
+/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,
@@ -9048,10 +9377,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{
@@ -9065,9 +9390,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")
@@ -9077,20 +9399,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,
@@ -9103,41 +9420,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;
@@ -9172,6 +9462,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{
@@ -9214,22 +9521,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,
@@ -9262,6 +9580,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,
@@ -9296,26 +9618,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,
@@ -9359,22 +9675,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{
@@ -9382,6 +9689,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,
@@ -9415,6 +9734,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,
@@ -9451,9 +9775,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;
@@ -9473,6 +9808,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" = (
@@ -9490,20 +9826,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,
@@ -9539,6 +9891,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,
@@ -9552,14 +9916,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,
@@ -9572,6 +9928,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
@@ -9601,30 +9967,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
@@ -9692,9 +10050,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{
@@ -9711,26 +10084,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"
@@ -9739,6 +10099,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{
@@ -9777,12 +10145,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
@@ -9811,25 +10177,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{
@@ -9847,15 +10203,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
@@ -9867,6 +10214,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
@@ -9881,17 +10240,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,
@@ -9915,11 +10263,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,
@@ -9928,17 +10314,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,
@@ -9979,13 +10354,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{
@@ -10029,17 +10397,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
@@ -10048,19 +10405,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,
@@ -10068,6 +10440,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,
@@ -10096,20 +10472,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{
@@ -10149,22 +10519,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,
@@ -10203,17 +10557,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"
@@ -10230,6 +10578,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"
@@ -10240,22 +10592,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;
@@ -10285,14 +10628,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{
@@ -10300,15 +10644,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,
@@ -10322,22 +10661,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,
@@ -10357,24 +10691,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{
@@ -10402,21 +10745,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{
@@ -10431,6 +10759,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{
@@ -10465,13 +10802,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,
@@ -10507,6 +10837,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
@@ -10515,9 +10849,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" = (
@@ -10525,6 +10864,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
@@ -10575,17 +10924,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,
@@ -10613,23 +10975,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,
@@ -10651,23 +11023,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"
@@ -10675,6 +11030,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,
@@ -10696,6 +11056,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)
@@ -10703,6 +11066,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,
@@ -10724,12 +11106,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
@@ -10787,6 +11163,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";
@@ -10794,15 +11176,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,
@@ -10828,16 +11201,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,
@@ -10861,13 +11263,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,
@@ -10880,25 +11282,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{
@@ -10911,6 +11310,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,
@@ -11004,18 +11409,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
@@ -11023,6 +11430,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,
@@ -11042,29 +11491,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{
@@ -11084,6 +11529,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"
@@ -11101,20 +11551,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,
@@ -11160,16 +11632,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
@@ -11189,28 +11651,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{
@@ -11234,6 +11680,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...";
@@ -11260,6 +11713,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,
@@ -11286,15 +11750,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,
@@ -11319,19 +11783,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
@@ -11339,16 +11798,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
@@ -11366,16 +11822,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{
@@ -11400,6 +11854,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,
@@ -11408,6 +11868,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" = (
@@ -11415,24 +11876,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
@@ -11448,9 +11909,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,
@@ -11471,6 +11970,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,
@@ -11479,6 +11981,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"
@@ -11496,6 +12004,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,
@@ -11509,14 +12026,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{
@@ -11537,23 +12046,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{
@@ -11567,23 +12067,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,
@@ -11623,43 +12121,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)
-"dqt" = (
-/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)
"dqw" = (
/obj/machinery/holopad,
/turf/open/floor/iron,
@@ -11668,12 +12129,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,
@@ -11696,43 +12166,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,
@@ -11748,9 +12227,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,
@@ -11778,11 +12254,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
@@ -11794,6 +12265,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
@@ -11814,12 +12297,6 @@
/obj/structure/flora/grass/both,
/turf/open/misc/asteroid/snow/icemoon,
/area/icemoon/surface/outdoors/nospawn)
-"dsa" = (
-/obj/structure/stairs/west,
-/turf/open/floor/iron/stairs/left{
- dir = 4
- },
-/area/station/science/cytology)
"dsf" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
@@ -11830,17 +12307,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,
@@ -11875,53 +12346,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{
@@ -11932,16 +12375,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,
@@ -11964,6 +12397,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,
@@ -11979,19 +12417,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"
@@ -12001,6 +12426,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"
@@ -12033,6 +12470,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" = (
@@ -12056,6 +12494,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,
@@ -12064,29 +12517,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
@@ -12094,6 +12535,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
@@ -12102,12 +12553,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
@@ -12130,19 +12581,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,
@@ -12151,6 +12589,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{
@@ -12189,6 +12631,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
@@ -12217,9 +12668,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,
@@ -12235,9 +12698,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" = (
@@ -12256,25 +12726,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{
@@ -12286,14 +12737,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
@@ -12311,15 +12754,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
@@ -12333,6 +12767,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{
@@ -12351,36 +12791,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
@@ -12411,9 +12842,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,
@@ -12427,36 +12883,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" = (
@@ -12476,6 +12907,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";
@@ -12483,6 +12923,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
@@ -12495,15 +12939,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,
@@ -12513,25 +12953,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{
@@ -12539,14 +12966,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{
@@ -12563,6 +12982,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
@@ -12573,22 +12998,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
@@ -12623,19 +13046,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,
@@ -12646,6 +13056,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"
@@ -12676,6 +13096,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
@@ -12714,13 +13147,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
@@ -12734,8 +13160,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)
@@ -12757,6 +13199,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,
@@ -12768,6 +13221,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"
@@ -12779,19 +13241,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
@@ -12820,6 +13269,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,
@@ -12840,16 +13315,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
@@ -12870,33 +13346,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,
@@ -12913,18 +13380,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,
@@ -12951,16 +13406,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{
@@ -12969,22 +13414,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{
@@ -13028,15 +13464,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;
@@ -13074,22 +13501,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,
@@ -13103,18 +13583,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,
@@ -13125,11 +13593,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;
@@ -13137,18 +13600,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
@@ -13172,12 +13623,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{
@@ -13206,6 +13651,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,
@@ -13219,6 +13674,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,
@@ -13253,10 +13721,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{
@@ -13265,16 +13739,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"
@@ -13285,6 +13749,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";
@@ -13296,13 +13765,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{
@@ -13334,29 +13804,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,
@@ -13372,6 +13819,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,
@@ -13379,6 +13842,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
@@ -13393,14 +13868,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"
@@ -13425,14 +13892,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,
@@ -13453,13 +13920,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,
@@ -13478,6 +13950,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{
@@ -13495,6 +13975,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,
@@ -13545,6 +14043,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,
@@ -13568,35 +14071,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{
@@ -13609,16 +14090,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,
@@ -13640,11 +14129,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{
@@ -13660,13 +14163,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
@@ -13676,6 +14172,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{
@@ -13683,6 +14194,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
@@ -13691,12 +14208,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
@@ -13706,6 +14239,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
@@ -13713,13 +14252,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,
@@ -13731,9 +14263,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,
@@ -13750,11 +14279,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
@@ -13775,13 +14317,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,
@@ -13798,36 +14348,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
@@ -13909,33 +14434,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,
@@ -13959,13 +14500,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,
@@ -13973,12 +14511,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,
@@ -14014,6 +14567,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,
@@ -14026,66 +14588,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
@@ -14093,24 +14653,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,
@@ -14130,39 +14677,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;
@@ -14179,13 +14710,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
@@ -14221,41 +14753,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,
@@ -14268,13 +14773,6 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
-"ege" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/structure/lattice/catwalk,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
"egj" = (
/obj/structure/rack,
/obj/machinery/light/small/directional/north,
@@ -14314,16 +14812,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,
@@ -14371,18 +14859,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/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)
+"ehq" = (
+/obj/structure/noticeboard/directional/north,
+/turf/open/floor/iron,
+/area/station/hallway/primary/central)
"ehD" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -14402,6 +14895,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";
@@ -14433,6 +14933,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,
@@ -14469,6 +14975,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
@@ -14482,12 +15012,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
@@ -14517,6 +15049,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{
@@ -14528,22 +15068,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"
@@ -14553,6 +15077,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;
@@ -14588,13 +15119,6 @@
},
/turf/open/floor/iron/white,
/area/station/medical/surgery/fore)
-"ekN" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/lattice/catwalk,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
"ekW" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -14602,16 +15126,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,
@@ -14633,48 +15147,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{
@@ -14691,6 +15186,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{
@@ -14698,6 +15198,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
@@ -14709,6 +15217,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"
@@ -14730,13 +15247,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,
@@ -14790,18 +15305,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,
@@ -14811,28 +15324,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,
@@ -14854,34 +15380,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,
@@ -14895,6 +15393,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,
@@ -14902,14 +15420,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{
@@ -14917,6 +15427,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{
@@ -14944,6 +15461,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
@@ -14978,13 +15503,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,
@@ -14997,22 +15515,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{
@@ -15037,6 +15539,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,
@@ -15044,6 +15555,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,
@@ -15061,10 +15578,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,
@@ -15116,19 +15629,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{
@@ -15156,33 +15680,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
@@ -15193,13 +15718,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,
@@ -15229,22 +15747,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,
@@ -15258,10 +15760,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,
@@ -15282,6 +15786,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)
@@ -15294,6 +15805,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,
@@ -15315,6 +15835,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
@@ -15323,29 +15853,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,
@@ -15353,13 +15897,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,
@@ -15374,6 +15911,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)
@@ -15422,21 +15966,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"
@@ -15444,13 +15986,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,
@@ -15551,6 +16086,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,
@@ -15591,20 +16140,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
@@ -15642,11 +16187,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"
@@ -15667,6 +16207,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,
@@ -15706,15 +16255,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{
@@ -15722,12 +16269,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,
@@ -15740,6 +16281,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"
@@ -15752,44 +16303,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,
-/obj/machinery/incident_display/delam/directional/north,
-/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,
@@ -15808,14 +16321,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,
@@ -15849,9 +16354,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,
@@ -15875,19 +16391,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,
@@ -15911,27 +16432,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
@@ -15959,22 +16508,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
@@ -15988,6 +16572,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,
@@ -15995,6 +16586,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{
@@ -16012,14 +16609,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,
@@ -16079,11 +16679,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,
@@ -16100,18 +16720,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
@@ -16124,19 +16744,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,
@@ -16150,16 +16783,20 @@
},
/turf/open/floor/plating/snowed/smoothed/icemoon,
/area/mine/mechbay)
-"eLU" = (
-/obj/structure/statue/snow/snowman,
-/turf/open/misc/asteroid/snow/standard_air,
-/area/station/science/cytology)
"eMa" = (
/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)
+"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,
@@ -16168,6 +16805,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,
@@ -16195,21 +16841,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,
@@ -16217,15 +16848,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
@@ -16279,17 +16901,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,
@@ -16305,36 +16916,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{
@@ -16345,6 +16951,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,
@@ -16364,6 +16978,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
@@ -16371,6 +16989,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
@@ -16378,16 +17006,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,
@@ -16397,34 +17036,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,
@@ -16441,6 +17092,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
@@ -16470,15 +17127,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,
@@ -16489,23 +17137,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
@@ -16518,10 +17174,6 @@
},
/turf/open/floor/iron/white,
/area/station/science/genetics)
-"eSQ" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
"eSY" = (
/obj/structure/closet/emcloset,
/turf/open/floor/iron/smooth,
@@ -16538,6 +17190,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,
@@ -16578,19 +17242,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,
@@ -16609,6 +17267,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{
@@ -16641,26 +17341,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;
@@ -16668,39 +17381,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,
@@ -16717,11 +17402,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{
@@ -16742,6 +17422,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
@@ -16833,11 +17519,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,
@@ -16855,24 +17536,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
@@ -16880,6 +17610,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
@@ -16890,18 +17624,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
@@ -16916,6 +17668,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;
@@ -16938,6 +17695,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,
@@ -16959,6 +17724,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
@@ -16994,6 +17765,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,
@@ -17031,26 +17806,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
@@ -17067,30 +17833,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)
@@ -17098,17 +17866,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,
@@ -17119,14 +17900,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,
@@ -17139,22 +17912,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,
@@ -17183,6 +17957,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{
@@ -17191,6 +17975,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,
@@ -17230,12 +18031,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;
@@ -17249,6 +18052,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,
@@ -17262,6 +18079,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)
@@ -17284,11 +18106,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)
@@ -17299,20 +18116,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
@@ -17326,11 +18129,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,
@@ -17350,12 +18156,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,
@@ -17363,6 +18163,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,
@@ -17379,12 +18184,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
@@ -17401,19 +18222,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{
@@ -17431,6 +18243,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,
@@ -17537,6 +18357,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,
@@ -17555,16 +18381,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,
@@ -17591,32 +18407,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
@@ -17632,21 +18447,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" = (
@@ -17719,13 +18539,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,
@@ -17807,13 +18625,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,
@@ -17831,6 +18642,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
@@ -17868,11 +18689,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)
@@ -17890,26 +18713,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
@@ -17922,11 +18725,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{
@@ -17934,25 +18732,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,
@@ -17977,6 +18762,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,
@@ -17986,6 +18777,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
@@ -17996,6 +18794,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{
@@ -18014,11 +18821,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
@@ -18057,6 +18859,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,
@@ -18068,29 +18876,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,
@@ -18108,11 +18921,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{
@@ -18120,14 +18961,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{
@@ -18154,23 +18987,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,
@@ -18191,7 +19016,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)
@@ -18203,6 +19027,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{
@@ -18214,6 +19055,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,
@@ -18236,11 +19087,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,
@@ -18258,19 +19104,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,
@@ -18307,12 +19158,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
@@ -18323,13 +19170,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"
@@ -18346,9 +19186,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
@@ -18404,13 +19257,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{
@@ -18484,14 +19330,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,
@@ -18505,18 +19346,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,
@@ -18578,6 +19407,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
@@ -18609,6 +19451,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,
@@ -18642,7 +19488,7 @@
network = list("labor")
},
/obj/machinery/flasher/directional/west{
- id = "GulagCell 1"
+ id = "GulagCell 3"
},
/turf/open/floor/iron,
/area/mine/laborcamp)
@@ -18654,6 +19500,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,
@@ -18661,14 +19523,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
@@ -18677,11 +19540,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{
@@ -18694,52 +19552,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,
@@ -18759,6 +19593,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,
@@ -18767,10 +19608,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{
@@ -18779,6 +19616,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" = (
@@ -18788,15 +19626,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,
@@ -18816,6 +19645,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{
@@ -18827,6 +19669,17 @@
/obj/effect/mapping_helpers/airlock/access/all/security/general,
/turf/open/floor/plating,
/area/station/security/processing)
+"fEL" = (
+/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,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/iron/large,
+/area/station/engineering/lobby)
"fER" = (
/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{
dir = 4
@@ -18855,11 +19708,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,
@@ -18872,6 +19720,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
@@ -18914,18 +19769,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,
@@ -18944,24 +19792,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,
@@ -18970,11 +19804,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,
@@ -18987,32 +19831,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
@@ -19039,21 +19868,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
@@ -19062,18 +19889,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
@@ -19100,18 +19915,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"
@@ -19139,6 +19942,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,
@@ -19154,6 +19971,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"
@@ -19180,11 +20007,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,
@@ -19197,6 +20019,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"
@@ -19224,6 +20049,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";
@@ -19235,10 +20077,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,
@@ -19270,31 +20124,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
@@ -19333,11 +20188,6 @@
/obj/effect/mapping_helpers/airlock/access/all/security/brig,
/turf/open/floor/iron,
/area/mine/laborcamp/security)
-"fLU" = (
-/turf/open/floor/iron/stairs/medium{
- dir = 4
- },
-/area/station/science/research)
"fLY" = (
/obj/structure/table,
/obj/item/stock_parts/micro_laser{
@@ -19363,39 +20213,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,
@@ -19421,34 +20270,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,
@@ -19464,18 +20294,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,
@@ -19484,6 +20343,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,
@@ -19491,12 +20366,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
@@ -19514,13 +20389,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{
@@ -19556,28 +20436,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,
@@ -19600,12 +20478,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,
@@ -19616,6 +20488,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,
@@ -19629,13 +20511,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{
@@ -19657,16 +20532,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,
@@ -19676,11 +20577,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
@@ -19730,6 +20636,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,
@@ -19779,17 +20690,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
@@ -19809,11 +20709,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"
@@ -19832,16 +20754,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{
@@ -19889,6 +20805,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
@@ -19898,44 +20821,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,
@@ -19948,16 +20838,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{
@@ -19979,18 +20859,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,
@@ -20004,16 +20887,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
@@ -20024,17 +20897,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
@@ -20042,15 +20922,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,
@@ -20059,16 +20943,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,
@@ -20082,19 +20985,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"
@@ -20118,18 +21028,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{
@@ -20184,10 +21114,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{
@@ -20221,6 +21147,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,
@@ -20276,16 +21221,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"
@@ -20296,6 +21231,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;
@@ -20310,10 +21262,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
@@ -20321,17 +21269,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,
@@ -20348,22 +21285,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
@@ -20376,14 +21318,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,
@@ -20416,13 +21355,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
@@ -20432,24 +21364,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,
@@ -20463,6 +21381,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,
@@ -20493,6 +21435,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
@@ -20526,6 +21478,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,
@@ -20540,18 +21506,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,
@@ -20565,17 +21519,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"
@@ -20588,15 +21541,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,
@@ -20607,10 +21568,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"
@@ -20619,14 +21576,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,
@@ -20641,12 +21597,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{
@@ -20668,30 +21628,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
@@ -20700,20 +21655,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
@@ -20734,14 +21695,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,
@@ -20781,6 +21734,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,
@@ -20788,17 +21746,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,
@@ -20814,13 +21761,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,
@@ -20857,12 +21797,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";
@@ -20878,6 +21812,10 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/engineering/lobby)
+"gkN" = (
+/obj/machinery/vending/autodrobe/all_access,
+/turf/open/floor/iron/dark/textured,
+/area/station/security/prison)
"gkP" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -20894,6 +21832,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;
@@ -20920,18 +21868,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)
@@ -20958,6 +21894,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,
@@ -21015,11 +21964,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"
@@ -21092,9 +22036,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,
@@ -21108,32 +22059,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" = (
-/turf/open/openspace,
-/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";
@@ -21143,6 +22114,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
@@ -21173,11 +22159,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
@@ -21185,9 +22171,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";
@@ -21199,6 +22210,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,
@@ -21249,10 +22289,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{
@@ -21271,32 +22307,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,
@@ -21311,15 +22338,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
},
@@ -21345,22 +22367,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
@@ -21371,13 +22387,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
@@ -21387,15 +22402,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{
@@ -21440,6 +22457,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
@@ -21452,17 +22479,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,
@@ -21497,13 +22526,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,
@@ -21517,28 +22547,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/structure/railing/corner/end/flip{
+"gwl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/turf_decal/tile/red{
dir = 4
},
-/turf/open/floor/iron/white/side{
- dir = 9
+/obj/machinery/light/directional/north,
+/obj/machinery/button/door/directional/north{
+ id = "Secure Gate";
+ name = "Cell Shutters";
+ req_access = list("brig")
},
-/area/station/science/research)
+/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,
@@ -21599,6 +22637,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,
@@ -21618,10 +22667,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{
@@ -21654,22 +22699,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
@@ -21682,15 +22711,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,
@@ -21698,14 +22739,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)
@@ -21723,6 +22769,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"
@@ -21736,14 +22811,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,
@@ -21767,25 +22834,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,
@@ -21798,44 +22853,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,
-/turf/open/floor/iron,
-/area/station/cargo/miningdock)
-"gAZ" = (
-/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
+"gAV" = (
+/obj/structure/railing{
+ dir = 4
},
-/obj/item/knife/combat/survival{
- pixel_x = 4;
- pixel_y = -3
+/obj/structure/stairs/south,
+/turf/open/floor/iron/stairs/medium{
+ dir = 1
},
-/obj/structure/sign/warning/gas_mask/directional/north,
-/obj/machinery/light/directional/east,
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
+/area/station/security/prison)
+"gAZ" = (
+/obj/effect/turf_decal/tile/purple,
+/turf/open/floor/iron,
+/area/station/hallway/primary/starboard)
"gBb" = (
/obj/machinery/door/window/right/directional/west{
name = "Containment Pen 3";
@@ -21859,14 +22898,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";
@@ -21884,10 +22915,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{
@@ -21937,15 +22976,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
@@ -21955,6 +22994,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;
@@ -21977,18 +23022,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{
@@ -22006,22 +23064,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
@@ -22040,33 +23096,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";
@@ -22075,20 +23107,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,
@@ -22112,11 +23130,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)
@@ -22130,6 +23159,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" = (
@@ -22138,18 +23170,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
@@ -22157,19 +23177,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
@@ -22178,24 +23194,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)
@@ -22221,12 +23219,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,
@@ -22249,12 +23241,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{
@@ -22277,20 +23263,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,
@@ -22306,10 +23287,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
@@ -22350,9 +23327,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
@@ -22377,26 +23351,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,
@@ -22416,6 +23388,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"
@@ -22428,37 +23404,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,
@@ -22474,12 +23431,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{
@@ -22529,6 +23505,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{
@@ -22539,6 +23520,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,
@@ -22547,6 +23542,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,
@@ -22571,33 +23576,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,
@@ -22608,25 +23643,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,
@@ -22642,25 +23658,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,
@@ -22670,13 +23667,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";
@@ -22685,10 +23675,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{
@@ -22702,21 +23688,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
@@ -22724,12 +23702,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,
@@ -22745,6 +23717,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{
@@ -22754,15 +23733,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{
@@ -22791,11 +23761,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,
@@ -22807,6 +23772,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{
@@ -22836,20 +23805,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"
@@ -22859,13 +23814,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
@@ -22873,18 +23821,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,
@@ -22951,6 +23894,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"
@@ -22965,6 +23920,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,
@@ -22993,30 +23956,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
@@ -23025,8 +23984,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,
@@ -23051,19 +24037,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
@@ -23077,30 +24050,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{
@@ -23110,39 +24059,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
@@ -23160,6 +24114,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
@@ -23189,13 +24148,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,
@@ -23210,19 +24168,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,
@@ -23234,10 +24179,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;
@@ -23250,12 +24191,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{
@@ -23271,18 +24206,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,
@@ -23291,6 +24224,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
@@ -23316,13 +24255,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,
@@ -23331,37 +24275,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
@@ -23415,10 +24366,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";
@@ -23435,12 +24382,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
@@ -23454,20 +24412,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";
@@ -23483,6 +24448,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{
@@ -23502,22 +24479,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)
-"gYO" = (
-/obj/item/food/grown/carrot,
-/turf/open/misc/asteroid/snow/standard_air,
-/area/station/science/cytology)
-"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,
@@ -23531,13 +24499,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
@@ -23545,11 +24517,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
@@ -23565,10 +24532,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{
@@ -23580,11 +24543,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
@@ -23601,14 +24559,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,
@@ -23631,6 +24581,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" = (
@@ -23649,16 +24602,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,
@@ -23680,10 +24632,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{
@@ -23717,15 +24665,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;
@@ -23749,6 +24699,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,
@@ -23783,28 +24745,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
@@ -23826,30 +24772,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;
@@ -23865,37 +24787,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,
@@ -23904,6 +24807,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
@@ -23911,17 +24822,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
@@ -23932,14 +24866,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,
@@ -23950,26 +24876,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,
@@ -23980,17 +24886,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,
@@ -24035,6 +24930,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" = (
@@ -24045,13 +24941,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,
@@ -24074,6 +24974,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
@@ -24084,6 +25011,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{
@@ -24100,16 +25037,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)
@@ -24129,14 +25070,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
@@ -24148,15 +25081,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{
@@ -24201,6 +25125,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{
@@ -24228,12 +25185,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,
@@ -24247,32 +25198,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,
@@ -24299,6 +25224,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";
@@ -24318,13 +25269,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
@@ -24339,14 +25283,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";
@@ -24375,19 +25311,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
@@ -24397,6 +25333,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)
@@ -24453,6 +25395,25 @@
},
/turf/open/floor/wood,
/area/station/command/heads_quarters/captain)
+"hph" = (
+/obj/structure/reagent_dispensers/plumbed{
+ dir = 1;
+ name = "hydroponics reservoir"
+ },
+/obj/effect/turf_decal/delivery/white{
+ color = "#307db9"
+ },
+/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"
@@ -24522,25 +25483,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;
@@ -24603,15 +25545,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,
@@ -24636,18 +25579,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
@@ -24663,35 +25605,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
@@ -24711,6 +25654,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,
@@ -24719,6 +25670,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" = (
@@ -24734,22 +25688,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,
@@ -24771,6 +25709,11 @@
/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,
@@ -24795,6 +25738,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,
@@ -24802,6 +25753,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
@@ -24837,13 +25807,13 @@
/obj/machinery/vending/autodrobe/all_access,
/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
@@ -24883,25 +25853,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
@@ -24931,23 +25882,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,
@@ -25026,6 +25979,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,
@@ -25035,30 +26012,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
@@ -25068,6 +26045,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
@@ -25079,22 +26066,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)
@@ -25104,16 +26075,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,
@@ -25136,6 +26101,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";
@@ -25165,6 +26165,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{
@@ -25174,34 +26189,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,
@@ -25221,10 +26244,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
@@ -25236,16 +26255,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,
@@ -25366,6 +26397,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
@@ -25375,50 +26423,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)
@@ -25432,6 +26467,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"
@@ -25447,12 +26490,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{
@@ -25480,18 +26533,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
@@ -25508,46 +26565,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,
@@ -25584,6 +26628,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
@@ -25605,8 +26665,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"
@@ -25616,13 +26693,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)
@@ -25640,18 +26710,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{
@@ -25659,15 +26733,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,
@@ -25681,17 +26746,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,
@@ -25710,6 +26791,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
@@ -25720,15 +26812,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,
@@ -25741,11 +26824,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,
@@ -25754,33 +26832,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{
@@ -25817,23 +26876,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
@@ -25841,12 +26896,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,
@@ -25857,35 +26906,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
@@ -25895,6 +26924,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,
@@ -25922,12 +26964,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,
@@ -25938,6 +26980,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,
@@ -25972,23 +27020,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{
@@ -25997,6 +27038,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
@@ -26011,6 +27059,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";
@@ -26025,13 +27094,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,
@@ -26040,19 +27102,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{
@@ -26086,6 +27164,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";
@@ -26139,6 +27221,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
@@ -26146,6 +27234,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
@@ -26158,19 +27263,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
@@ -26217,19 +27309,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,
@@ -26243,26 +27337,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,
@@ -26308,11 +27386,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,
@@ -26329,11 +27402,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
@@ -26393,6 +27485,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,
@@ -26400,6 +27503,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{
@@ -26407,6 +27532,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{
@@ -26419,6 +27555,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"
@@ -26427,32 +27568,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
@@ -26460,19 +27590,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,
@@ -26527,6 +27644,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,
@@ -26552,6 +27680,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,
@@ -26561,6 +27694,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
@@ -26583,13 +27725,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,
@@ -26597,40 +27775,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
@@ -26642,15 +27797,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,
@@ -26670,12 +27816,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
@@ -26684,6 +27824,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,
@@ -26696,6 +27873,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
@@ -26703,10 +27897,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,
@@ -26738,12 +27993,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,
@@ -26854,6 +28111,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
@@ -26866,10 +28130,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,
@@ -26895,17 +28159,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{
@@ -26950,6 +28203,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,
@@ -26992,13 +28252,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{
@@ -27014,26 +28267,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,
@@ -27049,12 +28292,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{
@@ -27072,23 +28312,49 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"ieb" = (
-/obj/machinery/door/airlock/research/glass{
- name = "Research Break Room"
+"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/effect/mapping_helpers/airlock/access/all/science/general,
+/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/science/research)
-"iew" = (
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/turf/open/floor/iron,
-/area/station/service/bar)
+/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
@@ -27097,25 +28363,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,
@@ -27134,6 +28387,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)
@@ -27141,15 +28399,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
@@ -27160,20 +28427,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
@@ -27227,25 +28497,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{
@@ -27261,6 +28512,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{
@@ -27273,16 +28530,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";
@@ -27312,6 +28570,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,
@@ -27339,14 +28604,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,
@@ -27373,11 +28645,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,
@@ -27401,10 +28673,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
@@ -27431,12 +28699,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
@@ -27468,6 +28730,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{
@@ -27485,10 +28754,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
@@ -27498,6 +28776,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,
@@ -27533,18 +28818,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,
@@ -27552,15 +28825,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
@@ -27569,35 +28840,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)
@@ -27609,37 +28866,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{
@@ -27668,12 +28894,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";
@@ -27688,10 +28908,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,
@@ -27705,17 +28921,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
@@ -27732,6 +28947,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,
@@ -27748,6 +28972,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{
@@ -27763,31 +28996,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
@@ -27797,35 +29015,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/wall_mounted/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" = (
@@ -27838,35 +29033,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
@@ -27904,32 +29093,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
@@ -27939,18 +29102,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;
@@ -27980,16 +29131,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,
@@ -28011,6 +29162,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,
@@ -28030,6 +29191,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)
@@ -28061,8 +29230,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
@@ -28104,19 +29284,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
@@ -28126,6 +29293,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,
@@ -28135,6 +29312,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{
@@ -28143,11 +29324,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{
@@ -28155,25 +29331,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
@@ -28185,34 +29384,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,
@@ -28237,6 +29411,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)
@@ -28244,6 +29425,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";
@@ -28253,21 +29443,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"
@@ -28338,12 +29519,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
@@ -28357,13 +29540,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,
@@ -28410,6 +29586,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,
@@ -28430,18 +29614,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)
@@ -28451,41 +29636,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
@@ -28511,20 +29669,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,
@@ -28539,19 +29683,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
@@ -28560,19 +29703,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
@@ -28581,10 +29726,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
@@ -28592,22 +29733,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{
@@ -28624,15 +29780,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,
@@ -28642,16 +29789,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;
@@ -28661,6 +29798,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,
@@ -28680,25 +29827,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";
@@ -28710,25 +29838,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{
@@ -28770,19 +29884,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,
@@ -28794,15 +29895,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,
@@ -28815,29 +29907,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
@@ -28851,6 +29931,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,
@@ -28872,25 +29960,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,
@@ -28922,23 +30015,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,
@@ -28947,15 +30046,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,
@@ -28968,6 +30058,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{
@@ -28994,6 +30102,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
@@ -29015,15 +30132,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,
@@ -29032,6 +30164,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,
@@ -29041,13 +30209,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,
@@ -29092,6 +30253,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,
@@ -29154,19 +30320,16 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
-"iLP" = (
-/obj/structure/ladder,
-/obj/structure/railing{
- dir = 9
- },
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/icemoon/underground/explored)
"iLY" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 4
},
/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{
@@ -29176,6 +30339,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,
@@ -29224,6 +30395,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
@@ -29239,6 +30416,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
@@ -29266,6 +30446,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,
@@ -29281,19 +30466,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/wall_mounted/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
@@ -29351,30 +30523,11 @@
},
/turf/open/floor/iron/dark,
/area/station/commons/storage/mining)
-"iPK" = (
-/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)
-"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,
@@ -29385,23 +30538,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
@@ -29458,9 +30635,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{
@@ -29518,6 +30701,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,
@@ -29532,28 +30722,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,
@@ -29566,13 +30734,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"
@@ -29593,19 +30754,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" = (
@@ -29640,6 +30793,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,
@@ -29653,21 +30816,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/med_sec/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{
@@ -29695,13 +30848,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,
@@ -29716,19 +30862,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
@@ -29761,6 +30913,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
@@ -29785,31 +30954,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,
@@ -29825,16 +31000,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
@@ -29842,30 +31012,17 @@
/obj/machinery/light/small/dim/directional/south,
/turf/open/floor/plating,
/area/station/maintenance/department/chapel)
-"iWs" = (
-/obj/machinery/door/firedoor/border_only,
-/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)
-"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
@@ -29895,10 +31052,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" = (
@@ -29923,13 +31097,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,
@@ -29940,6 +31107,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{
@@ -29950,6 +31145,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{
@@ -29973,6 +31193,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,
@@ -29980,10 +31206,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,
@@ -29992,12 +31214,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{
@@ -30007,11 +31223,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,
@@ -30025,6 +31236,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,
@@ -30041,13 +31257,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,
@@ -30083,12 +31299,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
@@ -30097,6 +31307,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{
@@ -30108,10 +31324,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,
@@ -30121,6 +31333,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"
@@ -30137,13 +31358,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,
@@ -30180,12 +31394,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"
@@ -30201,23 +31430,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{
@@ -30273,24 +31497,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{
@@ -30298,16 +31564,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,
@@ -30332,6 +31613,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
@@ -30346,22 +31635,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
@@ -30379,17 +31652,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/station/tcommsat/computer)
-"jem" = (
-/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)
"jer" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 8
@@ -30398,14 +31660,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,
@@ -30431,22 +31685,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
@@ -30474,6 +31735,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{
@@ -30486,16 +31755,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,
@@ -30540,65 +31834,39 @@
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
/area/station/maintenance/starboard/fore)
-"jih" = (
-/mob/living/basic/pet/penguin/emperor{
- name = "Club"
- },
-/obj/machinery/light/small/directional/east,
-/obj/item/toy/snowball{
- pixel_x = -9;
- pixel_y = 17
- },
-/turf/open/misc/asteroid/snow/standard_air,
-/area/station/science/cytology)
-"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{
@@ -30639,13 +31907,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,
@@ -30657,33 +31936,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,
@@ -30700,6 +31957,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
@@ -30723,17 +31989,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
@@ -30765,17 +32040,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
@@ -30797,13 +32061,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,
@@ -30823,21 +32080,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,
@@ -30847,16 +32101,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
@@ -30876,29 +32136,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{
@@ -30939,17 +32191,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,
@@ -30960,20 +32201,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"
@@ -31007,6 +32245,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)
@@ -31038,20 +32285,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" = (
@@ -31073,46 +32336,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" = (
@@ -31122,6 +32358,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
@@ -31138,14 +32379,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,
@@ -31191,23 +32424,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;
@@ -31327,26 +32549,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)
@@ -31410,10 +32612,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,
@@ -31459,12 +32657,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
@@ -31496,12 +32695,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{
@@ -31550,11 +32770,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,
@@ -31579,6 +32794,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,
@@ -31590,14 +32812,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{
@@ -31608,11 +32831,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,
@@ -31645,16 +32863,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{
@@ -31696,6 +32913,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,
@@ -31749,20 +32973,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
@@ -31783,21 +33005,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,
@@ -31813,6 +33020,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
@@ -31821,26 +33035,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";
@@ -31861,6 +33086,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,
@@ -31880,33 +33115,10 @@
},
/turf/open/floor/iron,
/area/station/engineering/main)
-"jDQ" = (
-/obj/structure/fence/door,
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
-"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,
@@ -31919,20 +33131,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";
@@ -31940,20 +33160,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
@@ -31966,18 +33198,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{
@@ -32007,11 +33227,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,
@@ -32041,36 +33256,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,
@@ -32082,13 +33289,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
@@ -32098,16 +33298,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
@@ -32169,10 +33359,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)
@@ -32199,12 +33392,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
@@ -32234,46 +33421,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
@@ -32287,6 +33469,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
@@ -32313,6 +33506,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,
@@ -32350,25 +33555,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,
@@ -32384,6 +33573,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)
@@ -32391,6 +33586,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,
@@ -32420,13 +33628,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,
@@ -32498,6 +33714,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
@@ -32508,16 +33748,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{
@@ -32527,10 +33786,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)
@@ -32546,6 +33801,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)
@@ -32561,18 +33819,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,
@@ -32588,6 +33834,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
@@ -32601,6 +33855,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
@@ -32613,6 +33880,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,
@@ -32667,6 +33940,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{
@@ -32690,6 +33972,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,
@@ -32701,6 +33991,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,
@@ -32713,16 +34012,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
@@ -32775,12 +34064,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,
@@ -32809,16 +34092,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,
@@ -32870,6 +34164,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,
@@ -32887,16 +34196,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";
@@ -32908,25 +34207,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";
@@ -32962,6 +34259,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{
@@ -32985,6 +34286,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{
@@ -33002,14 +34320,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)
@@ -33028,13 +34350,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{
@@ -33052,47 +34367,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)
-"jVi" = (
-/turf/open/floor/iron/stairs/left{
- dir = 4
- },
-/area/station/science/cytology)
-"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
@@ -33104,28 +34418,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,
@@ -33150,16 +34481,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;
@@ -33201,14 +34522,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{
@@ -33223,6 +34536,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
@@ -33230,18 +34566,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,
@@ -33256,10 +34580,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
@@ -33276,20 +34596,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
@@ -33304,25 +34660,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,
@@ -33335,35 +34676,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,
@@ -33391,12 +34708,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;
@@ -33413,12 +34724,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,
@@ -33427,10 +34732,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,
@@ -33452,6 +34775,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"
@@ -33475,29 +34807,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,
@@ -33528,16 +34843,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
@@ -33547,16 +34869,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";
@@ -33567,18 +34885,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/lattice/catwalk,
-/obj/structure/railing{
+"kdS" = (
+/obj/structure/fence{
dir = 1
},
-/obj/structure/railing,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
+/turf/open/misc/asteroid/snow/icemoon,
+/area/icemoon/surface/outdoors/nospawn)
"kdT" = (
/obj/machinery/iv_drip,
/obj/item/reagent_containers/blood,
@@ -33601,26 +34938,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,
@@ -33639,18 +34960,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)
@@ -33666,21 +34975,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,
@@ -33709,13 +35003,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,
@@ -33730,6 +35017,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)
@@ -33765,13 +35058,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
@@ -33806,6 +35098,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,
@@ -33868,23 +35165,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,
@@ -33897,24 +35181,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,
@@ -33974,17 +35240,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,
@@ -33999,6 +35283,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,
@@ -34006,6 +35308,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{
@@ -34019,10 +35338,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,
@@ -34063,16 +35378,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{
@@ -34083,18 +35419,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,
@@ -34109,29 +35433,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,
@@ -34150,6 +35451,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,
@@ -34184,6 +35494,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)
@@ -34213,23 +35528,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{
@@ -34241,23 +35543,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
@@ -34275,12 +35582,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,
@@ -34346,11 +35647,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
@@ -34364,22 +35660,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
@@ -34388,10 +35681,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)
@@ -34427,6 +35737,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
@@ -34464,16 +35779,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;
@@ -34499,13 +35804,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,
@@ -34522,24 +35820,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,
@@ -34612,22 +35902,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,
@@ -34649,19 +35923,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
@@ -34669,19 +35963,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{
@@ -34691,12 +35993,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,
@@ -34704,29 +36000,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)
@@ -34752,27 +36025,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,
@@ -34793,12 +36045,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,
@@ -34807,35 +36053,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)
@@ -34848,35 +36065,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{
@@ -34886,20 +36121,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
@@ -34907,10 +36138,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,
@@ -34928,22 +36155,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
@@ -34955,15 +36166,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
@@ -34986,6 +36188,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,
@@ -35002,14 +36214,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,
@@ -35053,31 +36257,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
@@ -35114,6 +36334,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,
@@ -35123,16 +36349,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,
@@ -35162,16 +36390,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{
@@ -35181,6 +36399,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" = (
@@ -35197,18 +36421,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
@@ -35218,10 +36430,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,
@@ -35247,6 +36461,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
@@ -35254,10 +36483,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{
@@ -35293,14 +36534,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{
@@ -35322,30 +36555,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,
@@ -35369,11 +36590,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{
@@ -35397,6 +36613,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,
@@ -35412,44 +36636,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
@@ -35460,14 +36649,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)
@@ -35503,6 +36684,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,
@@ -35523,26 +36714,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)
@@ -35559,6 +36735,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,
@@ -35577,15 +36760,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
@@ -35607,6 +36781,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,
@@ -35619,6 +36803,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,
@@ -35629,12 +36834,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,
@@ -35649,23 +36851,6 @@
dir = 1
},
/area/station/commons/storage/art)
-"kGJ" = (
-/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)
"kGP" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/red{
@@ -35709,22 +36894,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)
@@ -35806,6 +36975,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
@@ -35826,11 +37001,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,
@@ -35842,12 +37017,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,
@@ -35872,6 +37041,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
@@ -35880,26 +37059,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{
@@ -35914,12 +37085,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,
@@ -35935,21 +37100,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{
@@ -35975,6 +37125,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
@@ -36014,6 +37172,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,
@@ -36023,11 +37187,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{
@@ -36059,17 +37218,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
@@ -36082,13 +37230,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{
@@ -36118,8 +37275,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,
@@ -36138,6 +37296,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
@@ -36155,6 +37318,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,
@@ -36172,22 +37374,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,
@@ -36215,11 +37406,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
@@ -36234,6 +37420,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,
@@ -36251,9 +37450,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,
@@ -36268,25 +37464,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,
@@ -36317,14 +37494,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,
@@ -36343,14 +37512,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
@@ -36373,13 +37534,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;
@@ -36401,12 +37555,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,
@@ -36414,15 +37571,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
@@ -36430,13 +37578,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"
@@ -36447,21 +37588,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"
@@ -36485,13 +37611,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,
@@ -36506,12 +37634,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{
@@ -36557,25 +37698,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
@@ -36594,6 +37716,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
@@ -36612,6 +37749,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,
@@ -36620,14 +37764,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,
@@ -36636,72 +37772,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,
@@ -36709,6 +37816,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
@@ -36716,6 +37828,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,
@@ -36736,6 +37862,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
@@ -36752,23 +37888,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{
@@ -36782,6 +37901,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
},
@@ -36794,6 +37914,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,
@@ -36818,6 +37953,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,
@@ -36872,10 +38011,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" = (
@@ -36884,27 +38023,21 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/showroomfloor,
/area/station/security/prison/toilet)
-"kXR" = (
-/turf/open/floor/iron/stairs/right{
- dir = 4
- },
-/area/station/science/cytology)
-"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)
@@ -36921,9 +38054,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,
@@ -36953,11 +38083,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,
@@ -36977,6 +38102,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,
@@ -36986,16 +38121,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,
@@ -37023,13 +38148,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/item/radio/intercom/directional/north,
+/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";
@@ -37048,13 +38174,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"
@@ -37131,13 +38273,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;
@@ -37150,27 +38292,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,
@@ -37228,6 +38364,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,
@@ -37237,17 +38379,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{
@@ -37262,21 +38393,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"
@@ -37291,14 +38418,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
@@ -37308,17 +38436,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,
@@ -37334,11 +38481,25 @@
},
/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";
+ 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,
@@ -37363,11 +38524,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,
@@ -37378,6 +38539,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
@@ -37393,12 +38568,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)
@@ -37409,15 +38578,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,
@@ -37471,6 +38631,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,
@@ -37478,6 +38648,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" = (
@@ -37489,19 +38662,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,
@@ -37539,12 +38699,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,
@@ -37567,6 +38726,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"
@@ -37583,6 +38752,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,
@@ -37630,14 +38809,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{
@@ -37661,6 +38832,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,
@@ -37694,42 +38874,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,
@@ -37742,8 +38898,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
@@ -37792,6 +38968,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
@@ -37822,26 +39006,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
@@ -37869,12 +39064,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,
@@ -37884,23 +39073,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,
@@ -37931,15 +39103,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,
@@ -37955,11 +39123,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
@@ -37992,6 +39167,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
@@ -38046,6 +39225,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
@@ -38081,6 +39267,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,
@@ -38090,6 +39306,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,
@@ -38100,17 +39327,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,
@@ -38123,14 +39346,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;
@@ -38140,11 +39362,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,
@@ -38154,26 +39371,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
@@ -38206,6 +39431,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,
@@ -38219,10 +39456,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
@@ -38235,63 +39491,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,
@@ -38318,9 +39628,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
},
@@ -38332,6 +39651,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,
@@ -38370,6 +39700,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,
@@ -38411,14 +39750,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
@@ -38426,6 +39763,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,
@@ -38443,6 +39784,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{
@@ -38452,40 +39798,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,
@@ -38499,13 +39814,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)
@@ -38514,26 +39832,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
@@ -38541,10 +39839,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,
@@ -38590,6 +39896,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
@@ -38606,6 +39919,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,
@@ -38655,6 +39988,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,
@@ -38666,10 +40015,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)
@@ -38696,6 +40057,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,
@@ -38706,26 +40075,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,
@@ -38745,16 +40112,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,
@@ -38827,13 +40184,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,
@@ -38867,25 +40217,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";
@@ -38897,17 +40228,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{
@@ -38915,13 +40235,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,
@@ -38954,15 +40267,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,
@@ -38982,6 +40323,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,
@@ -39033,13 +40388,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
@@ -39051,11 +40424,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
@@ -39083,6 +40451,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{
@@ -39105,29 +40479,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,
@@ -39138,16 +40494,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,
@@ -39167,17 +40513,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{
@@ -39191,6 +40526,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,
@@ -39205,13 +40545,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
@@ -39246,16 +40579,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,
@@ -39268,60 +40595,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
@@ -39364,15 +40659,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,
@@ -39394,6 +40687,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,
@@ -39404,20 +40708,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,
@@ -39426,12 +40733,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,
@@ -39444,19 +40748,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
@@ -39484,15 +40775,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,
@@ -39512,12 +40794,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"
@@ -39555,22 +40831,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
@@ -39578,6 +40871,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,
@@ -39597,6 +40897,18 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/maintenance/department/electrical)
+"lOV" = (
+/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,
+/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{
@@ -39619,6 +40931,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,
@@ -39626,14 +40949,11 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/station/medical/medbay/aft)
-"lPz" = (
-/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)
+"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
@@ -39676,17 +40996,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,
@@ -39712,6 +41031,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";
@@ -39742,7 +41070,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" = (
@@ -39777,6 +41105,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,
@@ -39830,6 +41173,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
@@ -39869,39 +41227,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
@@ -39909,6 +41253,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
@@ -39922,12 +41272,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{
@@ -40005,6 +41349,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,
@@ -40037,15 +41387,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
@@ -40065,6 +41415,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,
@@ -40077,29 +41446,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{
@@ -40122,12 +41471,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
@@ -40138,6 +41488,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,
@@ -40152,12 +41509,10 @@
},
/turf/open/floor/grass,
/area/station/medical/virology)
-"lYS" = (
-/obj/structure/chair/office{
- dir = 4
- },
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
+"lYT" = (
+/obj/structure/table,
+/turf/open/floor/wood,
+/area/station/maintenance/aft/greater)
"lZe" = (
/obj/effect/turf_decal/tile/blue/opposingcorners{
dir = 1
@@ -40169,11 +41524,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{
@@ -40206,26 +41556,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,
@@ -40254,18 +41601,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,
@@ -40276,16 +41611,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{
@@ -40294,6 +41628,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,
@@ -40313,6 +41655,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,
@@ -40320,6 +41666,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{
@@ -40345,16 +41704,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{
@@ -40373,6 +41736,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,
@@ -40391,6 +41765,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,
@@ -40406,26 +41789,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
@@ -40439,6 +41814,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,
@@ -40448,6 +41829,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{
@@ -40463,13 +41852,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;
@@ -40482,10 +41864,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
@@ -40500,6 +41878,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,
@@ -40537,12 +41924,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,
@@ -40557,6 +41952,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,
@@ -40568,6 +41973,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";
@@ -40591,25 +42008,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,
@@ -40628,17 +42068,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,
@@ -40661,6 +42090,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{
@@ -40676,22 +42123,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,
@@ -40731,6 +42173,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;
@@ -40740,16 +42189,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,
@@ -40768,37 +42212,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,
@@ -40816,18 +42235,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,
@@ -40856,15 +42267,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
@@ -40897,6 +42309,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
@@ -40918,15 +42336,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,
@@ -40936,12 +42353,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
@@ -40955,13 +42380,19 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/central)
-"mnB" = (
-/obj/structure/railing{
- dir = 5
+"mnA" = (
+/obj/item/clothing/accessory/pocketprotector,
+/obj/structure/closet/secure_closet/personal/cabinet,
+/obj/item/camera{
+ pixel_y = 4;
+ pixel_x = -3
},
-/obj/structure/lattice/catwalk,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
+/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{
@@ -40977,27 +42408,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,
@@ -41005,16 +42426,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
@@ -41037,6 +42448,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,
@@ -41081,41 +42501,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{
@@ -41131,18 +42537,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,
@@ -41159,10 +42553,19 @@
dir = 4
},
/area/station/security/brig/entrance)
-"mqO" = (
-/obj/machinery/power/port_gen/pacman,
+"mqI" = (
+/obj/machinery/vending/boozeomat/all_access,
/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;
@@ -41176,25 +42579,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,
@@ -41251,10 +42644,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,
@@ -41263,13 +42652,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{
@@ -41304,6 +42686,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,
@@ -41322,6 +42725,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,
@@ -41332,6 +42758,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
@@ -41339,26 +42770,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
@@ -41399,6 +42867,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,
@@ -41443,6 +42925,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" = (
@@ -41466,31 +42951,16 @@
},
/turf/open/floor/plating,
/area/station/medical/pharmacy)
-"mwK" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/holopad,
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
"mwQ" = (
/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
- },
-/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)
-"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"
@@ -41506,6 +42976,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"
@@ -41530,13 +43015,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,
@@ -41593,22 +43099,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,
@@ -41630,15 +43124,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{
@@ -41654,15 +43165,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)
@@ -41693,6 +43195,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"
@@ -41706,6 +43230,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,
@@ -41746,6 +43276,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";
@@ -41755,6 +43313,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,
@@ -41792,6 +43362,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,
@@ -41800,6 +43373,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{
@@ -41813,12 +43407,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,
@@ -41827,10 +43447,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,
@@ -41847,15 +43463,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,
@@ -41865,9 +43472,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,
@@ -41904,11 +43525,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)
@@ -41924,18 +43556,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,
@@ -41976,14 +43639,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,
@@ -42031,13 +43686,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,
@@ -42050,10 +43705,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/station/medical/medbay/aft)
-"mGV" = (
-/obj/machinery/keycard_auth/wall_mounted/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,
@@ -42072,6 +43723,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,
@@ -42097,11 +43759,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{
@@ -42129,17 +43809,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,
@@ -42187,13 +43856,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,
@@ -42201,15 +43863,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{
@@ -42217,12 +43927,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
@@ -42260,16 +43964,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,
@@ -42289,10 +43998,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)
@@ -42321,19 +44026,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
@@ -42352,6 +44080,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)
@@ -42388,16 +44120,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{
@@ -42423,10 +44145,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"
@@ -42436,13 +44189,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,
@@ -42461,22 +44207,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,
@@ -42506,17 +44236,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,
@@ -42529,27 +44248,16 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
-"mRp" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/structure/lattice/catwalk,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
"mRr" = (
/obj/structure/cable,
/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,
@@ -42571,15 +44279,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,
@@ -42587,31 +44286,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,
@@ -42628,10 +44306,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,
@@ -42647,15 +44350,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";
@@ -42664,69 +44358,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
@@ -42734,20 +44381,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,
@@ -42771,15 +44404,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,
@@ -42787,20 +44411,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,
@@ -42909,6 +44533,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" = (
@@ -42937,19 +44564,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,
@@ -42968,11 +44582,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)
@@ -42987,10 +44596,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";
@@ -43019,12 +44640,38 @@
},
/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/structure/table,
+/obj/item/paper_bin,
+/obj/item/pen{
+ pixel_x = -5
+ },
+/obj/item/hand_labeler{
+ pixel_y = -3
+ },
+/turf/open/floor/wood,
+/area/station/hallway/secondary/service)
"mZf" = (
/obj/effect/turf_decal/weather/snow/corner{
dir = 5
@@ -43083,6 +44730,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,
@@ -43094,11 +44752,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{
@@ -43117,12 +44779,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,
@@ -43143,6 +44799,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
@@ -43178,13 +44844,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
@@ -43206,23 +44865,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,
@@ -43233,18 +44885,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,
@@ -43259,57 +44920,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
@@ -43332,33 +44967,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)
-"nce" = (
-/obj/structure/lattice/catwalk,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
+/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,
@@ -43378,17 +45010,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"
@@ -43402,14 +45023,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)
@@ -43476,32 +45089,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)
@@ -43517,16 +45114,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,
@@ -43545,13 +45139,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
@@ -43573,51 +45165,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,
@@ -43662,21 +45214,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
@@ -43686,25 +45246,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/wall_mounted/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
@@ -43723,6 +45271,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{
@@ -43733,23 +45292,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,
@@ -43760,16 +45307,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
@@ -43789,13 +45326,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,
-/obj/structure/reagent_dispensers/watertank,
-/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;
@@ -43849,13 +45384,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,
@@ -43865,6 +45398,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,
@@ -43880,39 +45435,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,
@@ -43952,14 +45515,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,
@@ -43972,22 +45539,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,
@@ -44003,17 +45554,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
@@ -44026,14 +45566,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
@@ -44071,16 +45603,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
@@ -44128,12 +45650,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,
@@ -44141,18 +45657,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/primary/port)
-"nmy" = (
-/obj/structure/fence/door{
- dir = 4
- },
-/obj/structure/railing/corner/end/flip{
- dir = 8
- },
-/obj/structure/railing/corner/end{
- dir = 8
- },
-/turf/open/misc/asteroid/snow/icemoon,
-/area/icemoon/underground/explored)
"nmz" = (
/obj/structure/lattice/catwalk,
/obj/structure/railing{
@@ -44160,23 +45664,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{
@@ -44184,6 +45671,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,
@@ -44202,15 +45704,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,
@@ -44226,6 +45726,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,
@@ -44242,20 +45756,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,
@@ -44272,11 +45780,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,
@@ -44288,15 +45791,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
@@ -44309,11 +45814,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,
@@ -44356,11 +45856,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" = (
@@ -44440,16 +45940,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,
@@ -44467,13 +45979,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,
@@ -44481,12 +45986,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,
@@ -44495,13 +45994,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";
@@ -44512,39 +46004,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
@@ -44594,19 +46059,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,
@@ -44617,29 +46087,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)
-"nsH" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/deepfryer,
-/turf/open/floor/iron/white/smooth_large,
-/area/station/service/kitchen)
-"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,
@@ -44656,6 +46114,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)
@@ -44671,10 +46136,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")
@@ -44687,20 +46160,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,
@@ -44735,23 +46214,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
@@ -44772,20 +46243,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,
@@ -44797,17 +46261,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{
@@ -44857,6 +46335,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
@@ -44866,17 +46354,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
@@ -44894,37 +46386,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,
@@ -44943,6 +46413,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,
@@ -44960,25 +46434,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";
@@ -45006,13 +46489,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,
@@ -45046,6 +46522,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
@@ -45057,6 +46547,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,
@@ -45070,17 +46566,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,
@@ -45103,12 +46599,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
@@ -45118,6 +46608,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
@@ -45148,37 +46644,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
@@ -45196,6 +46683,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
@@ -45239,6 +46742,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" = (
@@ -45269,11 +46773,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{
@@ -45293,40 +46806,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{
@@ -45345,6 +46832,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,
@@ -45366,14 +46866,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,
@@ -45406,12 +46898,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,
@@ -45420,24 +46906,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,
@@ -45463,20 +46931,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,
@@ -45484,15 +46938,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)
@@ -45522,6 +46967,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,
@@ -45561,10 +47010,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,
@@ -45605,6 +47062,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{
@@ -45626,6 +47104,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,
@@ -45638,16 +47124,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,
@@ -45655,10 +47137,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" = (
@@ -45691,16 +47192,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,
@@ -45708,10 +47199,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{
@@ -45719,12 +47223,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,
@@ -45749,18 +47247,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,
@@ -45768,13 +47260,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{
@@ -45782,26 +47267,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
@@ -45827,15 +47299,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
@@ -45844,6 +47307,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{
@@ -45852,6 +47327,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,
@@ -45864,28 +47353,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
@@ -45905,6 +47386,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
@@ -45962,41 +47449,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,
@@ -46038,6 +47515,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
@@ -46056,30 +47541,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" = (
@@ -46107,6 +47573,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
@@ -46116,6 +47589,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)
@@ -46141,17 +47629,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
@@ -46159,15 +47643,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,
@@ -46176,21 +47651,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)
-"nNV" = (
-/obj/structure/railing{
- dir = 9
+"nNZ" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "QMLoad2"
},
-/obj/structure/lattice/catwalk,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
+/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"
@@ -46200,11 +47680,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,
@@ -46219,11 +47713,6 @@
/obj/item/pillow/random,
/turf/open/floor/carpet,
/area/station/commons/dorms)
-"nOo" = (
-/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)
"nOx" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
@@ -46244,17 +47733,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{
@@ -46269,6 +47747,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,
@@ -46280,12 +47806,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,
@@ -46305,30 +47836,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,
@@ -46351,6 +47867,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";
@@ -46415,6 +47938,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,
@@ -46441,37 +47975,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
@@ -46554,14 +48084,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,
@@ -46569,18 +48096,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{
@@ -46616,14 +48131,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{
@@ -46635,6 +48142,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
@@ -46659,16 +48173,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"
@@ -46708,6 +48212,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
@@ -46718,30 +48226,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
@@ -46759,6 +48260,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)
@@ -46767,6 +48276,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)
@@ -46789,20 +48306,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"
@@ -46830,6 +48333,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,
@@ -46840,25 +48350,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,
@@ -46893,14 +48388,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,
@@ -46908,10 +48395,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"
@@ -46931,38 +48438,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
@@ -46981,18 +48464,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"
@@ -47002,6 +48473,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" = (
@@ -47018,6 +48495,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,
@@ -47025,15 +48521,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/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/structure/sign/warning/no_smoking/circle/directional/east,
+/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{
@@ -47048,6 +48564,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
@@ -47069,14 +48597,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{
@@ -47085,16 +48628,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,
@@ -47107,6 +48640,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,
@@ -47123,33 +48681,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,
@@ -47169,21 +48700,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";
@@ -47205,25 +48740,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
@@ -47241,26 +48761,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,
@@ -47290,6 +48812,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
@@ -47304,8 +48845,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"
@@ -47341,11 +48891,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)
@@ -47365,15 +48918,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
@@ -47387,6 +48948,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,
@@ -47423,19 +48992,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)
@@ -47443,16 +48999,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,
@@ -47468,20 +49018,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,
@@ -47497,22 +49058,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,
@@ -47522,6 +49088,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,
@@ -47548,17 +49124,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,
@@ -47571,23 +49149,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
@@ -47616,6 +49193,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
@@ -47640,22 +49222,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{
@@ -47669,10 +49235,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
@@ -47680,6 +49250,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,
@@ -47719,6 +49299,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,
@@ -47748,15 +49333,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,
@@ -47803,21 +49385,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)
-"onV" = (
-/obj/machinery/door/airlock/research{
- name = "Cytology Lab"
+"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/effect/mapping_helpers/airlock/access/all/science/general,
-/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/ordnance)
+/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,
@@ -47840,23 +49439,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
@@ -47866,6 +49451,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
@@ -47889,6 +49494,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{
@@ -47916,6 +49534,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{
@@ -47923,14 +49550,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{
@@ -47945,24 +49578,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
@@ -47976,6 +49598,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{
@@ -47984,6 +49609,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,
@@ -47997,22 +49628,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{
@@ -48020,15 +49635,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
@@ -48036,13 +49642,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,
@@ -48053,6 +49652,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,
@@ -48070,6 +49679,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,
@@ -48080,23 +49692,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{
@@ -48112,12 +49711,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
@@ -48154,28 +49760,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
@@ -48220,10 +49810,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
@@ -48238,8 +49824,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,
@@ -48278,6 +49873,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,
@@ -48304,6 +49918,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"
@@ -48316,12 +49942,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
@@ -48346,11 +49994,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)
@@ -48365,11 +50037,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,
@@ -48406,12 +50073,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,
-/obj/machinery/incident_display/bridge/directional/north,
-/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,
@@ -48437,22 +50108,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" = (
@@ -48480,6 +50145,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,
@@ -48552,6 +50226,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)
@@ -48562,12 +50243,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,
@@ -48578,23 +50277,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{
@@ -48614,23 +50296,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
@@ -48638,6 +50310,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,
@@ -48646,12 +50335,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,
@@ -48695,16 +50378,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
@@ -48756,6 +50448,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";
@@ -48779,25 +50478,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{
@@ -48826,10 +50550,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{
@@ -48846,6 +50566,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,
@@ -48867,6 +50592,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
@@ -48896,14 +50632,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,
@@ -48930,10 +50658,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{
@@ -48957,12 +50711,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,
@@ -48987,20 +50735,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,
@@ -49008,6 +50807,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
@@ -49017,29 +50820,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
@@ -49085,6 +50873,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;
@@ -49094,6 +50890,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{
@@ -49136,6 +50942,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,
@@ -49147,6 +50965,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{
@@ -49154,6 +50999,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,
@@ -49182,28 +51039,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,
@@ -49246,17 +51115,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,
@@ -49272,16 +51130,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,
@@ -49297,14 +51155,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,
@@ -49333,6 +51183,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,
@@ -49348,6 +51205,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,
@@ -49355,6 +51221,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{
@@ -49428,11 +51302,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{
@@ -49440,16 +51309,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"
@@ -49500,14 +51364,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,
@@ -49527,19 +51383,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,
@@ -49552,10 +51395,6 @@
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/wood,
/area/station/maintenance/aft/lesser)
-"oNW" = (
-/obj/structure/water_source/puddle,
-/turf/open/floor/grass,
-/area/station/security/prison/garden)
"oNX" = (
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron/dark,
@@ -49564,6 +51403,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,
@@ -49573,36 +51436,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{
@@ -49620,63 +51473,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
@@ -49687,6 +51533,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
@@ -49727,38 +51576,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)
-"oQV" = (
-/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)
"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
@@ -49774,6 +51594,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" = (
@@ -49795,12 +51616,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";
@@ -49818,10 +51652,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,
@@ -49833,20 +51663,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,
@@ -49904,33 +51731,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,
@@ -49960,6 +51776,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,
@@ -49988,20 +51837,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,
@@ -50024,6 +51859,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"
@@ -50078,12 +51922,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,
@@ -50095,17 +51933,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,
@@ -50157,19 +51997,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,
@@ -50179,6 +52014,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,
@@ -50190,19 +52037,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,
@@ -50227,13 +52061,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,
@@ -50242,44 +52076,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{
@@ -50298,12 +52123,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{
@@ -50339,6 +52161,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,
@@ -50368,9 +52199,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,
@@ -50406,18 +52234,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
@@ -50431,8 +52253,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,
@@ -50440,6 +52273,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;
@@ -50460,27 +52300,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
@@ -50492,6 +52311,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
@@ -50519,6 +52352,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,
@@ -50533,6 +52382,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,
@@ -50548,15 +52412,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,
@@ -50565,30 +52437,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
@@ -50619,6 +52467,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" = (
@@ -50633,6 +52482,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{
@@ -50651,10 +52506,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)
@@ -50663,43 +52526,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,
@@ -50711,6 +52561,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
@@ -50727,11 +52586,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{
@@ -50793,27 +52660,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{
@@ -50829,11 +52688,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,
@@ -50863,13 +52738,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,
@@ -50925,17 +52793,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";
@@ -50946,35 +52803,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" = (
@@ -51007,16 +52847,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,
@@ -51042,16 +52872,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";
@@ -51065,17 +52885,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,
@@ -51118,11 +52963,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,
@@ -51143,16 +52987,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,
@@ -51165,6 +53012,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";
@@ -51193,21 +53052,23 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/tcommsat/computer)
-"pnq" = (
-/obj/machinery/light/small/directional/north,
-/obj/structure/sign/departments/science/alt/directional/north,
-/turf/open/openspace,
-/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,
@@ -51238,6 +53099,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)
@@ -51263,22 +53130,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,
@@ -51293,6 +53144,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,
@@ -51302,17 +53162,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{
@@ -51357,9 +53222,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
@@ -51367,6 +53237,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{
@@ -51393,6 +53271,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
@@ -51425,17 +53310,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)
@@ -51460,10 +53334,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{
@@ -51473,6 +53343,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)
@@ -51497,6 +53371,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,
@@ -51552,30 +53434,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,
@@ -51585,6 +53477,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)
@@ -51627,17 +53525,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,
@@ -51668,6 +53588,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,
@@ -51679,6 +53611,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,
@@ -51725,13 +53668,16 @@
},
/turf/open/floor/eighties/red,
/area/station/security/prison/safe)
-"pvU" = (
-/obj/machinery/light/small/directional/south,
-/obj/item/kirbyplants/random,
-/turf/open/floor/iron/cafeteria{
- dir = 8
+"pvP" = (
+/obj/item/radio/intercom/directional/south,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/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,
@@ -51771,6 +53717,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";
@@ -51780,16 +53732,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,
@@ -51819,14 +53761,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";
@@ -51846,10 +53780,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
@@ -51891,6 +53828,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,
@@ -51901,6 +53856,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,
@@ -51909,14 +53875,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
@@ -52006,6 +53972,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{
@@ -52013,18 +53992,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{
@@ -52052,16 +54019,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,
@@ -52076,15 +54033,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,
@@ -52099,17 +54053,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)
@@ -52128,6 +54092,16 @@
/obj/structure/flora/tree/jungle/small/style_random,
/turf/open/floor/grass,
/area/station/security/warden)
+"pBR" = (
+/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)
"pBV" = (
/obj/structure/chair/office/light,
/turf/open/floor/iron/dark,
@@ -52150,11 +54124,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
@@ -52191,14 +54179,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{
@@ -52215,6 +54195,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{
@@ -52235,6 +54226,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,
@@ -52251,6 +54249,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,
@@ -52332,12 +54338,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
@@ -52348,18 +54348,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,
@@ -52389,12 +54382,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{
@@ -52404,19 +54391,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
@@ -52424,14 +54398,20 @@
/turf/open/floor/plating/snowed/icemoon,
/area/icemoon/underground/explored)
"pGy" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
+/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,
@@ -52446,6 +54426,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";
@@ -52500,30 +54484,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
@@ -52542,26 +54520,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{
@@ -52572,11 +54549,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,
@@ -52646,16 +54633,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
@@ -52696,21 +54681,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,
@@ -52723,17 +54714,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
@@ -52751,18 +54731,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,
@@ -52784,14 +54752,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,
@@ -52812,11 +54782,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"
@@ -52857,16 +54822,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)
@@ -52880,22 +54850,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,
@@ -52923,27 +54877,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,
@@ -52959,12 +54892,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,
@@ -52981,26 +54908,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)
@@ -53011,6 +54933,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,
@@ -53033,30 +54961,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,
@@ -53108,6 +55012,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,
@@ -53147,11 +55058,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{
@@ -53176,25 +55089,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,
@@ -53202,7 +55108,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
@@ -53214,10 +55119,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
@@ -53230,16 +55131,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,
@@ -53258,48 +55155,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{
@@ -53321,6 +55205,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
@@ -53341,6 +55256,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{
@@ -53360,6 +55280,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{
@@ -53377,6 +55315,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,
@@ -53400,6 +55353,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)
@@ -53446,36 +55404,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,
@@ -53518,16 +55481,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
@@ -53575,6 +55549,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,
@@ -53592,13 +55576,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,
@@ -53610,6 +55587,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" = (
@@ -53625,15 +55605,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,
@@ -53648,15 +55635,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;
@@ -53664,6 +55642,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
@@ -53671,25 +55654,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,
@@ -53701,11 +55676,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
@@ -53743,6 +55729,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,
@@ -53761,19 +55767,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{
@@ -53781,6 +55779,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{
@@ -53793,14 +55814,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/science/xenobiology)
-"qbz" = (
-/obj/structure/ladder,
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/lattice/catwalk,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
"qbA" = (
/obj/structure/cable,
/obj/machinery/airalarm/directional/east,
@@ -53817,71 +55830,36 @@
/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)
-"qcl" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/station/science/cytology)
"qcu" = (
/obj/effect/turf_decal/tile/red,
/turf/open/floor/iron,
@@ -53891,6 +55869,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
@@ -53909,16 +55906,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
},
@@ -53950,6 +55945,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,
@@ -53986,6 +55997,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,
@@ -54032,17 +56048,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)
@@ -54057,23 +56062,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
@@ -54083,30 +56121,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,
@@ -54116,41 +56136,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
@@ -54161,25 +56172,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,
@@ -54202,11 +56208,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,
@@ -54214,12 +56221,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,
@@ -54228,39 +56229,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,
@@ -54275,10 +56255,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,
@@ -54288,15 +56277,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/effect/turf_decal/tile/green/anticorner/contrasted{
- dir = 4
- },
-/obj/item/kirbyplants/random,
-/turf/open/floor/iron/dark,
-/area/station/service/hydroponics/garden)
"qjb" = (
/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{
dir = 10
@@ -54308,9 +56291,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{
@@ -54333,18 +56313,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,
@@ -54358,24 +56326,11 @@
/obj/structure/girder,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
-"qjs" = (
-/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)
"qjx" = (
/obj/structure/cable,
/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
@@ -54383,6 +56338,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
@@ -54399,15 +56361,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
@@ -54450,6 +56418,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
@@ -54457,6 +56431,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;
@@ -54487,6 +56466,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{
@@ -54515,18 +56521,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)
@@ -54536,6 +56541,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)
@@ -54548,36 +56561,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";
@@ -54617,12 +56606,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)
@@ -54658,20 +56641,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
@@ -54683,26 +56652,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,
@@ -54717,14 +56666,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.";
@@ -54749,24 +56690,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,
@@ -54790,7 +56727,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";
@@ -54834,15 +56771,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,
@@ -54852,19 +56780,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{
@@ -54885,18 +56800,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,
@@ -54927,15 +56830,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,
@@ -54964,42 +56858,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
@@ -55021,16 +56902,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,
@@ -55038,35 +56915,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)
@@ -55090,22 +56951,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{
@@ -55122,10 +56971,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";
@@ -55146,33 +56991,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{
@@ -55183,9 +57005,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
@@ -55195,6 +57014,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
@@ -55216,6 +57052,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,
@@ -55234,9 +57074,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,
@@ -55305,11 +57142,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,
@@ -55318,40 +57157,6 @@
/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")
- },
-/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";
@@ -55361,10 +57166,6 @@
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,
@@ -55427,31 +57228,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,
@@ -55461,6 +57259,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{
@@ -55468,6 +57286,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{
@@ -55501,23 +57326,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,
@@ -55532,6 +57345,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,
@@ -55554,18 +57381,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
@@ -55581,13 +57396,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,
@@ -55598,26 +57412,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{
@@ -55633,15 +57434,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,
@@ -55661,6 +57460,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,
@@ -55689,11 +57491,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{
@@ -55708,37 +57505,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"
+"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/machinery/door/airlock/external{
- glass = 1;
- name = "Mining Mech Bay External Airlock";
- opacity = 0
+/obj/item/bedsheet/brown{
+ dir = 4
},
-/obj/effect/turf_decal/stripes/line{
- 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/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,
@@ -55760,15 +57547,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,
@@ -55799,6 +57590,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
@@ -55811,14 +57607,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
@@ -55901,13 +57689,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,
@@ -55916,6 +57717,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,
@@ -55946,17 +57752,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
@@ -55987,8 +57782,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)
@@ -55997,6 +57790,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" = (
@@ -56029,11 +57825,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{
@@ -56047,15 +57849,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
@@ -56091,6 +57890,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{
@@ -56110,15 +57923,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)
@@ -56132,20 +57944,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,
@@ -56182,18 +58032,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
@@ -56211,21 +58067,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,
@@ -56242,18 +58083,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,
@@ -56272,15 +58101,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,
@@ -56356,13 +58176,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,
@@ -56377,26 +58199,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{
@@ -56409,26 +58221,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)
@@ -56473,6 +58265,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,
@@ -56499,27 +58295,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
@@ -56527,10 +58342,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,
@@ -56543,6 +58354,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,
@@ -56563,10 +58380,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,
@@ -56607,12 +58453,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{
@@ -56620,15 +58460,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
@@ -56645,13 +58480,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,
@@ -56677,6 +58515,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)
@@ -56712,22 +58556,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,
@@ -56754,49 +58601,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,
@@ -56847,13 +58688,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";
@@ -56877,11 +58711,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,
@@ -56889,31 +58718,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
@@ -56926,14 +58747,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)
@@ -56967,18 +58780,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,
@@ -56995,17 +58805,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
@@ -57074,13 +58894,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,
@@ -57089,22 +58902,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)
-"qWh" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/firealarm/directional/west,
-/obj/effect/turf_decal/tile/purple/half/contrasted{
- dir = 8
+"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
},
-/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{
@@ -57184,20 +59007,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,
@@ -57207,10 +59023,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{
@@ -57235,6 +59047,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
@@ -57252,18 +59082,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{
@@ -57283,6 +59111,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,
@@ -57293,11 +59127,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,
@@ -57316,11 +59164,10 @@
/turf/open/floor/iron/dark,
/area/station/medical/treatment_center)
"qZG" = (
-/obj/structure/fence/corner{
- dir = 5
- },
-/turf/open/misc/asteroid/snow/icemoon,
-/area/icemoon/underground/explored)
+/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)
@@ -57339,6 +59186,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,
@@ -57373,10 +59226,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{
@@ -57416,6 +59265,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,
@@ -57442,13 +59296,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";
@@ -57457,10 +59304,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,
@@ -57470,23 +59313,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,
@@ -57523,84 +59362,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" = (
@@ -57614,6 +59414,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{
@@ -57621,6 +59427,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,
@@ -57643,12 +59466,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
@@ -57687,13 +59543,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{
@@ -57703,16 +59552,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,
@@ -57720,10 +59559,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)
@@ -57732,6 +59567,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,
@@ -57740,16 +59581,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,
@@ -57786,6 +59617,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,
@@ -57808,34 +59646,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";
@@ -57843,24 +59666,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,
@@ -57900,59 +59719,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,
@@ -57965,17 +59780,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
@@ -57983,43 +59787,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{
@@ -58027,16 +59806,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,
@@ -58046,10 +59843,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,
@@ -58059,6 +59861,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,
@@ -58077,14 +59903,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,
@@ -58095,36 +59933,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,
-/obj/item/radio/intercom/directional/west,
-/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,
@@ -58136,18 +59983,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{
@@ -58155,21 +59990,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,
@@ -58194,44 +60014,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"
@@ -58246,6 +60040,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{
@@ -58263,11 +60063,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,
@@ -58284,18 +60079,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,
@@ -58309,13 +60092,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,
@@ -58354,10 +60165,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,
@@ -58367,16 +60174,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
@@ -58400,22 +60197,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
@@ -58484,15 +60265,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
@@ -58506,13 +60283,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,
@@ -58532,20 +60302,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
@@ -58553,26 +60327,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,
@@ -58587,19 +60357,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
@@ -58611,6 +60401,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,
@@ -58636,6 +60454,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,
@@ -58644,6 +60474,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,
@@ -58666,6 +60509,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" = (
@@ -58679,6 +60523,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,
@@ -58744,23 +60592,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,
@@ -58785,13 +60616,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,
@@ -58799,12 +60623,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,
@@ -58817,33 +60635,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{
@@ -58868,11 +60677,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
@@ -58895,6 +60707,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,
@@ -58906,23 +60726,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,
@@ -58930,17 +60735,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,
@@ -58948,6 +60742,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)
@@ -58966,6 +60785,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,
@@ -58979,12 +60802,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{
@@ -58994,25 +60811,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"
@@ -59059,17 +60857,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,
@@ -59083,23 +60878,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,
@@ -59116,15 +60894,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,
@@ -59144,6 +60913,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,
@@ -59159,12 +60936,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{
@@ -59172,14 +60943,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,
@@ -59217,6 +61001,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,
@@ -59355,42 +61148,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/railing{
- dir = 1
- },
-/turf/open/floor/iron/cafeteria{
- dir = 8
- },
-/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"
@@ -59399,9 +61156,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,
@@ -59417,18 +61177,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"
@@ -59449,18 +61197,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,
@@ -59470,17 +61211,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,
@@ -59492,12 +61247,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" = (
@@ -59507,21 +61264,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
@@ -59534,6 +61291,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,
@@ -59552,6 +61315,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{
@@ -59562,6 +61331,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{
@@ -59600,6 +61378,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{
@@ -59607,6 +61390,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{
@@ -59622,21 +61408,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,
@@ -59659,11 +61441,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
@@ -59673,23 +61450,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{
@@ -59704,14 +61464,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{
@@ -59720,16 +61478,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)
@@ -59743,6 +61496,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";
@@ -59775,18 +61541,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" = (
@@ -59797,35 +61559,21 @@
/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{
- dir = 10
+"rKZ" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
},
/obj/structure/cable,
/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)
@@ -59841,6 +61589,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,
@@ -59854,10 +61617,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
@@ -59908,6 +61667,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" = (
@@ -59941,6 +61701,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,
@@ -59957,6 +61724,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
@@ -59967,12 +61743,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,
@@ -59986,10 +61763,25 @@
/obj/structure/closet/toolcloset,
/turf/open/floor/iron/dark,
/area/station/engineering/supermatter/room)
-"rOz" = (
-/obj/structure/flora/grass/brown/style_random,
-/turf/open/misc/asteroid/snow/standard_air,
-/area/station/science/cytology)
+"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
@@ -60022,18 +61814,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,
@@ -60043,25 +61832,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,
@@ -60074,6 +61844,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,
@@ -60086,12 +61869,6 @@
/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/hallway/primary/central)
-"rQs" = (
-/obj/structure/fence/corner{
- dir = 8
- },
-/turf/open/misc/asteroid/snow/icemoon,
-/area/icemoon/underground/explored)
"rQw" = (
/obj/effect/turf_decal/trimline/green/filled/line{
dir = 8
@@ -60153,6 +61930,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,
@@ -60172,29 +61973,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,
@@ -60202,6 +62004,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,
@@ -60220,11 +62033,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,
@@ -60261,36 +62069,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)
-"rSZ" = (
-/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"
- },
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
-"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,
@@ -60322,16 +62104,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,
@@ -60349,15 +62131,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";
@@ -60366,6 +62139,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" = (
@@ -60379,6 +62155,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{
@@ -60441,16 +62229,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,
@@ -60476,6 +62254,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{
@@ -60490,14 +62275,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,
@@ -60508,15 +62302,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,
@@ -60611,34 +62429,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";
@@ -60649,11 +62461,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,
@@ -60683,6 +62490,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{
@@ -60690,6 +62502,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{
@@ -60704,10 +62528,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,
@@ -60727,16 +62547,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{
@@ -60749,6 +62569,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,
@@ -60777,26 +62648,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
@@ -60830,26 +62686,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{
@@ -60858,6 +62712,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,
@@ -60879,14 +62741,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
@@ -60907,19 +62761,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"
@@ -60928,15 +62769,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
@@ -60947,13 +62785,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
@@ -60984,10 +62847,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,
@@ -60997,17 +62856,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,
@@ -61017,13 +62865,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
@@ -61047,17 +62909,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,
@@ -61075,31 +62949,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,
@@ -61111,12 +62972,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,
@@ -61135,6 +62990,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{
@@ -61194,6 +63056,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" = (
@@ -61204,6 +63067,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,
@@ -61214,17 +63082,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"
@@ -61237,18 +63109,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{
@@ -61264,14 +63124,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,
@@ -61280,53 +63132,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
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/iron/smooth_large,
-/area/station/cargo/drone_bay)
-"sjD" = (
-/obj/structure/stairs/west,
-/turf/open/floor/iron/stairs/right{
- dir = 4
+/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
},
-/area/station/science/cytology)
-"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";
@@ -61358,20 +63224,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
@@ -61379,42 +63235,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,
@@ -61453,6 +63286,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{
@@ -61467,6 +63308,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{
@@ -61476,19 +63326,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,
@@ -61517,6 +63367,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"
@@ -61545,24 +63406,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
@@ -61601,14 +63449,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,
@@ -61644,15 +63484,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
@@ -61670,6 +63501,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,
@@ -61679,6 +63525,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{
@@ -61693,6 +63553,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
@@ -61709,6 +63580,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
@@ -61726,6 +63609,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{
@@ -61752,14 +63641,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,
@@ -61767,26 +63648,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
@@ -61816,12 +63687,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)
@@ -61837,21 +63702,6 @@
dir = 8
},
/area/station/service/chapel)
-"sqB" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
-"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,
@@ -61859,11 +63709,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/wall_mounted/directional/south,
-/turf/open/floor/wood,
-/area/station/command/heads_quarters/captain)
"sqW" = (
/obj/structure/marker_beacon/burgundy{
name = "landing marker"
@@ -61921,6 +63766,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,
@@ -61928,35 +63788,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{
@@ -61989,13 +63823,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
@@ -62006,27 +63833,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,
@@ -62040,6 +63863,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,
@@ -62054,12 +63884,6 @@
},
/turf/open/floor/wood,
/area/station/service/lawoffice)
-"stb" = (
-/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)
"sth" = (
/obj/item/radio/intercom/directional/east,
/obj/structure/disposalpipe/trunk{
@@ -62102,16 +63926,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";
@@ -62125,13 +63939,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,
@@ -62180,17 +63987,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,
@@ -62198,6 +64014,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,
@@ -62246,6 +64071,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,
@@ -62254,13 +64086,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)
@@ -62274,6 +64099,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,
@@ -62290,12 +64126,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,
@@ -62347,6 +64177,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" = (
@@ -62364,13 +64195,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,
@@ -62396,12 +64220,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
@@ -62418,6 +64248,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" = (
@@ -62427,15 +64258,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,
@@ -62449,28 +64271,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{
@@ -62479,6 +64285,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
@@ -62493,11 +64319,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
@@ -62523,14 +64387,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,
@@ -62540,25 +64396,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,
@@ -62571,14 +64413,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,
@@ -62596,13 +64430,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{
@@ -62611,6 +64445,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
@@ -62623,14 +64463,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
@@ -62643,6 +64475,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,
@@ -62671,14 +64508,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,
@@ -62697,14 +64538,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
@@ -62712,6 +64545,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
@@ -62738,6 +64581,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{
@@ -62754,6 +64612,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,
@@ -62763,14 +64625,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
@@ -62792,14 +64655,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{
@@ -62818,13 +64677,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)
@@ -62845,10 +64712,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
@@ -62890,11 +64753,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{
@@ -62913,6 +64771,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,
@@ -62969,14 +64834,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
@@ -62992,37 +64855,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
@@ -63048,6 +64885,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
@@ -63057,6 +64898,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,
@@ -63082,19 +64932,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{
@@ -63108,38 +64964,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,
@@ -63174,32 +65028,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)
@@ -63241,39 +65085,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{
@@ -63299,21 +65127,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,
@@ -63322,29 +65135,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"
@@ -63383,6 +65196,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
@@ -63409,25 +65227,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,
@@ -63476,6 +65275,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,
@@ -63491,6 +65295,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";
@@ -63543,6 +65353,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,
@@ -63550,22 +65367,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
@@ -63606,11 +65422,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,
@@ -63621,12 +65432,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,
@@ -63634,6 +65439,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,
@@ -63645,6 +65459,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{
@@ -63652,26 +65478,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,
@@ -63720,32 +65538,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,
@@ -63785,20 +65627,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/station/security/prison/workout)
-"sSz" = (
-/obj/machinery/door/firedoor/heavy,
-/turf/open/floor/iron/white,
-/area/station/science/research)
-"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,
@@ -63807,6 +65635,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{
@@ -63827,10 +65668,25 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/station/medical/chemistry)
-"sSS" = (
-/obj/machinery/incident_display/delam/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{
@@ -63859,6 +65715,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,
@@ -63882,6 +65751,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"
@@ -63895,20 +65788,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"
@@ -63918,15 +65797,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
@@ -63943,6 +65813,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" = (
@@ -63965,24 +65836,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
@@ -63993,6 +65856,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,
@@ -64000,8 +65868,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"
@@ -64041,19 +65927,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{
@@ -64075,48 +65982,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,
@@ -64140,15 +66011,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,
@@ -64161,19 +66023,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
@@ -64205,6 +66072,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
@@ -64270,6 +66141,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,
@@ -64297,35 +66185,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{
@@ -64342,18 +66228,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
@@ -64378,6 +66252,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";
@@ -64396,13 +66279,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,
@@ -64411,6 +66294,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,
@@ -64425,13 +66313,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{
@@ -64440,39 +66335,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{
@@ -64493,6 +66396,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,
@@ -64501,23 +66415,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
@@ -64556,8 +66471,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,
@@ -64567,6 +66494,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{
@@ -64592,6 +66526,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,
@@ -64628,6 +66575,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,
@@ -64663,46 +66619,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,
@@ -64712,12 +66635,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{
@@ -64736,6 +66686,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
@@ -64757,10 +66711,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,
@@ -64768,13 +66727,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
@@ -64804,47 +66788,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,
-/obj/machinery/door/firedoor/heavy,
-/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,
@@ -64867,6 +66850,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,
@@ -64919,10 +66915,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,
@@ -64931,6 +66923,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,
@@ -64994,6 +66993,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,
@@ -65003,17 +67010,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
@@ -65021,14 +67031,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,
@@ -65039,6 +67041,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,
@@ -65064,25 +67074,13 @@
/obj/machinery/shower/directional/west,
/turf/open/floor/iron/white,
/area/station/medical/virology)
-"toP" = (
-/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)
"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,
@@ -65102,6 +67100,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,
@@ -65132,11 +67137,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,
@@ -65149,14 +67155,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{
@@ -65167,17 +67165,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" = (
@@ -65197,16 +67218,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
@@ -65235,6 +67256,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,
@@ -65258,15 +67284,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"
@@ -65278,19 +67317,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"
@@ -65318,20 +67349,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,
@@ -65344,17 +67361,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";
@@ -65404,6 +67420,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,
@@ -65421,12 +67447,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,
@@ -65441,6 +67491,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,
@@ -65453,6 +67507,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"
@@ -65467,10 +67528,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,
@@ -65505,17 +67562,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,
@@ -65527,17 +67583,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
@@ -65547,37 +67592,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,
@@ -65608,15 +67622,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
@@ -65628,6 +67641,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
@@ -65636,17 +67655,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,
@@ -65654,6 +67662,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,
@@ -65666,6 +67687,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,
@@ -65739,6 +67764,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
@@ -65755,11 +67802,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,
@@ -65772,15 +67814,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,
@@ -65789,6 +67822,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,
@@ -65804,9 +67841,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
@@ -65814,11 +67874,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{
@@ -65831,18 +67886,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
@@ -65855,10 +67898,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,
@@ -65887,24 +67932,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,
@@ -65914,14 +67947,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,
@@ -65970,16 +67995,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{
@@ -65994,6 +68009,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,
@@ -66012,12 +68031,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,
@@ -66032,42 +68049,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)
@@ -66075,39 +68061,6 @@
/obj/structure/ore_box,
/turf/open/floor/plating/snowed/smoothed/icemoon,
/area/icemoon/underground/explored)
-"tEE" = (
-/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)
-"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{
@@ -66115,6 +68068,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,
@@ -66128,17 +68092,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"
@@ -66155,13 +68122,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,
@@ -66190,6 +68191,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,
@@ -66201,6 +68226,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"
@@ -66216,6 +68250,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"
@@ -66223,12 +68266,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{
@@ -66251,23 +68296,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{
@@ -66312,13 +68350,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,
@@ -66332,6 +68363,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" = (
@@ -66342,6 +68374,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" = (
@@ -66358,13 +68391,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
@@ -66382,28 +68423,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
@@ -66443,6 +68485,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,
@@ -66455,42 +68504,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
@@ -66508,13 +68537,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,
@@ -66529,6 +68592,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,
@@ -66538,21 +68614,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{
@@ -66568,6 +68629,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
@@ -66575,12 +68647,6 @@
/obj/effect/turf_decal/tile/blue/full,
/turf/open/floor/iron/dark/smooth_large,
/area/station/command/heads_quarters/cmo)
-"tLy" = (
-/obj/machinery/vatgrower{
- dir = 4
- },
-/turf/open/misc/asteroid/snow/standard_air,
-/area/station/science/cytology)
"tLB" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible,
/obj/effect/turf_decal/tile/yellow{
@@ -66591,6 +68657,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";
@@ -66625,6 +68707,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
@@ -66661,21 +68747,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{
@@ -66703,11 +68784,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
@@ -66719,45 +68813,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,
@@ -66767,6 +68836,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,
@@ -66783,63 +68860,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{
@@ -66865,6 +68901,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,
@@ -66891,16 +68948,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,
@@ -66928,6 +68975,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
@@ -66941,54 +69026,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,
@@ -66999,22 +69080,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/railing/corner{
- dir = 4
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 6
},
-/obj/structure/lattice/catwalk,
-/turf/open/openspace/icemoon,
-/area/icemoon/underground/explored)
+/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{
@@ -67037,24 +69121,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
@@ -67091,6 +69157,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" = (
@@ -67098,6 +69168,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
@@ -67110,21 +69187,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
@@ -67137,6 +69205,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)
@@ -67147,6 +69221,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,
@@ -67154,17 +69237,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,
@@ -67179,6 +69256,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,
@@ -67211,6 +69299,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,
@@ -67226,44 +69320,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,
@@ -67272,6 +69340,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,
@@ -67288,6 +69361,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{
@@ -67312,6 +69398,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,
@@ -67334,6 +69431,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"
@@ -67356,61 +69475,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
- },
-/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" = (
@@ -67424,6 +69508,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,
@@ -67449,6 +69545,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
@@ -67487,38 +69589,10 @@
},
/turf/open/floor/iron/dark,
/area/station/security/checkpoint/science)
-"ubh" = (
-/turf/open/openspace/xenobio,
-/area/station/science/xenobiology)
-"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,
@@ -67546,28 +69620,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,
@@ -67600,11 +69663,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)
@@ -67612,20 +69680,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,
@@ -67643,15 +69697,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
@@ -67672,22 +69730,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,
@@ -67700,14 +69742,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,
@@ -67718,6 +69758,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,
@@ -67735,6 +69782,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,
@@ -67761,6 +69812,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,
@@ -67771,11 +69827,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{
@@ -67797,14 +69848,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{
@@ -67829,6 +69872,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,
@@ -67841,19 +69888,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
@@ -67868,6 +69902,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{
@@ -67876,14 +69928,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;
@@ -67915,6 +69959,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"
@@ -67926,15 +69980,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,
@@ -67954,44 +69999,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{
@@ -68009,19 +70024,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)
@@ -68031,10 +70033,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,
@@ -68047,6 +70045,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,
@@ -68071,34 +70075,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{
@@ -68121,6 +70097,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{
@@ -68132,6 +70134,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,
@@ -68168,6 +70183,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)
@@ -68177,12 +70199,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/layer2{
- dir = 1
+"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,
@@ -68190,17 +70229,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,
@@ -68214,6 +70252,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
@@ -68234,13 +70283,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,
@@ -68288,14 +70339,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
},
-/obj/structure/sign/departments/exodrone/directional/west,
-/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;
@@ -68306,16 +70357,6 @@
/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)
"uog" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -68369,36 +70410,9 @@
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/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)
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/engineering/atmos)
"uoT" = (
/obj/structure/extinguisher_cabinet/directional/west,
/obj/structure/table,
@@ -68412,6 +70426,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,
@@ -68439,12 +70469,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,
@@ -68464,6 +70492,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,
@@ -68507,13 +70546,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,
@@ -68528,6 +70565,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";
@@ -68538,6 +70591,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
@@ -68565,6 +70625,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,
@@ -68577,22 +70655,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" = (
-/obj/item/kirbyplants/random,
-/turf/open/floor/iron/cafeteria{
- dir = 8
- },
-/area/station/science/research)
"usS" = (
/obj/structure/bed{
dir = 1
@@ -68607,37 +70669,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{
@@ -68661,27 +70698,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"
@@ -68693,10 +70715,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"
@@ -68740,17 +70758,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,
@@ -68761,6 +70778,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{
@@ -68768,6 +70793,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,
@@ -68784,13 +70819,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,
@@ -68814,6 +70845,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{
@@ -68844,6 +70886,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
@@ -68869,11 +70926,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
@@ -68887,26 +70947,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,
@@ -68933,13 +71002,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{
@@ -68957,6 +71019,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{
@@ -68964,6 +71044,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,
@@ -68974,12 +71064,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
@@ -69014,21 +71136,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,
@@ -69050,6 +71157,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)
@@ -69064,34 +71183,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,
@@ -69174,26 +71273,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,
@@ -69240,18 +71332,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,
@@ -69260,13 +71348,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,
@@ -69291,6 +71372,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{
@@ -69309,10 +71397,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
@@ -69341,11 +71425,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,
@@ -69354,6 +71457,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,
@@ -69367,17 +71486,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,
@@ -69394,7 +71531,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,
@@ -69422,10 +71559,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
@@ -69444,16 +71577,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
@@ -69466,6 +71596,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{
@@ -69478,13 +71615,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;
@@ -69516,20 +71646,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
@@ -69554,19 +71727,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{
@@ -69575,31 +71761,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,
@@ -69626,28 +71787,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
@@ -69663,24 +71824,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"
@@ -69691,36 +71834,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,
@@ -69766,19 +71899,10 @@
"uMN" = (
/turf/open/openspace,
/area/station/commons/storage/mining)
-"uMU" = (
-/obj/structure/fence/corner,
-/turf/open/misc/asteroid/snow/icemoon,
-/area/icemoon/underground/explored)
-"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
@@ -69788,37 +71912,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)
-"uNH" = (
-/obj/structure/railing,
-/obj/structure/closet/secure_closet/cytology,
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
+"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{
@@ -69840,16 +71943,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";
@@ -69877,48 +71970,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
@@ -69936,28 +72005,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" = (
@@ -69977,11 +72033,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,
@@ -70006,24 +72057,36 @@
dir = 8
},
/area/station/ai_monitored/command/storage/eva)
-"uPQ" = (
-/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)
"uPS" = (
/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,
@@ -70033,6 +72096,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,
@@ -70046,6 +72120,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,
@@ -70142,45 +72223,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,
@@ -70203,11 +72248,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
@@ -70228,12 +72296,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,
@@ -70241,40 +72308,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{
@@ -70290,6 +72382,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,
@@ -70310,20 +72411,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
@@ -70333,22 +72425,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"
@@ -70360,20 +72473,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{
@@ -70401,15 +72500,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";
@@ -70426,6 +72516,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
@@ -70459,6 +72559,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,
@@ -70466,6 +72574,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,
@@ -70521,22 +72635,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,
@@ -70555,13 +72667,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;
@@ -70634,13 +72763,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,
@@ -70670,24 +72792,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,
@@ -70748,27 +72898,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,
@@ -70777,12 +72906,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{
@@ -70793,11 +72925,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{
@@ -70805,14 +72932,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)
@@ -70832,16 +72961,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{
@@ -70850,10 +72969,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,
@@ -70878,27 +73002,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";
@@ -70920,18 +73051,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{
@@ -70957,6 +73094,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
@@ -70975,31 +73116,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,
@@ -71026,13 +73158,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
@@ -71046,10 +73181,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,
@@ -71062,24 +73193,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" = (
-/turf/open/floor/iron/stairs/right{
- dir = 4
- },
-/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,
@@ -71087,10 +73234,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,
@@ -71106,6 +73275,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
@@ -71142,49 +73316,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,
@@ -71209,17 +73365,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
@@ -71228,11 +73373,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;
@@ -71254,10 +73394,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,
@@ -71276,6 +73412,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,
@@ -71304,6 +73457,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,
@@ -71327,6 +73497,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,
@@ -71340,22 +73525,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
@@ -71368,20 +73537,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{
@@ -71392,12 +73578,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,
@@ -71429,14 +73617,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,
@@ -71480,39 +73660,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,
@@ -71581,7 +73746,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
},
@@ -71595,21 +73759,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,
@@ -71618,6 +73775,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)
@@ -71651,6 +73817,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
@@ -71658,6 +73829,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,
@@ -71696,28 +73871,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;
@@ -71731,6 +73918,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" = (
@@ -71739,34 +73929,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,
@@ -71820,18 +74009,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)
@@ -71843,17 +74020,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{
@@ -71908,6 +74074,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
@@ -71917,6 +74125,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"
@@ -71934,11 +74151,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,
@@ -71946,16 +74165,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,
@@ -72040,6 +74265,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,
@@ -72056,14 +74286,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
@@ -72090,6 +74323,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)
@@ -72104,10 +74360,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
@@ -72116,12 +74372,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,
@@ -72133,6 +74383,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,
@@ -72156,10 +74416,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" = (
@@ -72170,21 +74436,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{
@@ -72207,18 +74481,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{
@@ -72232,19 +74494,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{
@@ -72269,17 +74529,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{
@@ -72299,15 +74560,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
@@ -72320,24 +74572,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,
@@ -72355,18 +74589,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{
@@ -72393,23 +74615,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,
@@ -72478,6 +74694,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" = (
@@ -72495,16 +74712,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"
@@ -72521,17 +74732,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
@@ -72545,19 +74757,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)
-"vES" = (
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
"vEU" = (
/obj/machinery/door/airlock/external{
glass = 1;
@@ -72573,15 +74772,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,
@@ -72612,6 +74802,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,
@@ -72626,11 +74826,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";
@@ -72667,14 +74867,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
@@ -72689,6 +74881,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,
@@ -72709,34 +74910,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,
@@ -72772,6 +74964,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"
@@ -72779,13 +74989,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,
@@ -72798,6 +75001,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,
@@ -72815,6 +75035,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;
@@ -72825,9 +75052,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")
@@ -72849,13 +75073,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{
@@ -72864,48 +75131,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
@@ -72924,14 +75162,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
@@ -72970,29 +75200,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{
@@ -73000,6 +75212,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{
@@ -73017,6 +75234,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,
@@ -73085,12 +75311,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
@@ -73115,6 +75348,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{
@@ -73190,36 +75426,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"
@@ -73287,6 +75493,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
@@ -73301,6 +75527,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{
@@ -73328,24 +75567,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
@@ -73358,12 +75579,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;
@@ -73383,18 +75605,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)
@@ -73451,14 +75675,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)
@@ -73504,21 +75732,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,
@@ -73548,70 +75767,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"
@@ -73633,10 +75802,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,
@@ -73658,6 +75823,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,
@@ -73665,6 +75835,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)
@@ -73680,22 +75861,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,
@@ -73707,14 +75872,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
@@ -73736,60 +75899,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,
@@ -73812,10 +75945,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{
@@ -73870,15 +76005,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{
@@ -73898,34 +76024,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/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
@@ -73999,16 +76108,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,
@@ -74020,6 +76160,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;
@@ -74060,10 +76204,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,
@@ -74078,12 +76227,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{
@@ -74096,11 +76260,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{
@@ -74112,16 +76271,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,
@@ -74133,6 +76282,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
@@ -74146,22 +76301,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
@@ -74178,12 +76318,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;
@@ -74195,16 +76329,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{
@@ -74221,20 +76361,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,
@@ -74262,6 +76398,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
@@ -74270,13 +76417,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,
@@ -74293,35 +76444,19 @@
},
/turf/open/floor/iron/white,
/area/station/medical/virology)
-"wiM" = (
-/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)
-"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/wall_mounted/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{
@@ -74333,6 +76468,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
@@ -74341,17 +76493,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{
@@ -74366,6 +76517,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";
@@ -74386,20 +76546,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,
@@ -74408,6 +76554,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{
@@ -74418,12 +76583,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{
@@ -74440,18 +76599,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,
@@ -74480,10 +76627,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,
@@ -74507,14 +76650,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,
@@ -74547,6 +76687,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{
@@ -74560,14 +76708,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,
@@ -74579,9 +76719,6 @@
/obj/machinery/light_switch/directional/south,
/turf/open/floor/iron/dark/textured,
/area/station/security/range)
-"wnp" = (
-/turf/closed/wall/r_wall,
-/area/station/science/cytology)
"wnv" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -74640,20 +76777,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)
@@ -74664,11 +76794,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,
@@ -74696,31 +76821,6 @@
},
/turf/open/floor/plating,
/area/station/hallway/secondary/exit/departure_lounge)
-"woV" = (
-/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)
-"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"
@@ -74730,34 +76830,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,
@@ -74777,12 +76859,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,
@@ -74836,21 +76912,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,
@@ -74858,17 +76919,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)
@@ -74911,25 +76968,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{
@@ -74952,15 +77011,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,
@@ -74973,12 +77031,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,
@@ -75059,6 +77128,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,
@@ -75073,33 +77152,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)
@@ -75140,19 +77204,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,
@@ -75161,9 +77212,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,
@@ -75180,12 +77228,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{
@@ -75203,13 +77250,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,
@@ -75219,12 +77275,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)
@@ -75235,22 +77285,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{
@@ -75300,39 +77351,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{
@@ -75366,6 +77403,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,
@@ -75408,6 +77450,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,
@@ -75419,6 +77469,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,
@@ -75430,6 +77487,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)
@@ -75451,6 +77513,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";
@@ -75462,25 +77554,6 @@
/obj/item/folder/yellow,
/turf/open/floor/iron,
/area/station/cargo/storage)
-"wAk" = (
-/obj/item/toy/snowball{
- pixel_x = -6;
- pixel_y = 3
- },
-/turf/open/misc/asteroid/snow/standard_air,
-/area/station/science/cytology)
-"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
@@ -75490,14 +77563,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
@@ -75505,6 +77570,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
@@ -75539,12 +77611,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
@@ -75582,15 +77663,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,
@@ -75602,12 +77684,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"
@@ -75617,6 +77693,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" = (
@@ -75625,6 +77704,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
@@ -75650,6 +77733,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,
@@ -75657,6 +77750,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{
@@ -75693,34 +77792,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
@@ -75735,16 +77806,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,
@@ -75765,6 +77826,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)
@@ -75775,26 +77844,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
@@ -75853,6 +77928,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,
@@ -75884,15 +77980,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,
@@ -75917,19 +78012,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{
@@ -75943,10 +78025,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,
@@ -75964,6 +78042,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
@@ -75997,12 +78083,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{
@@ -76010,17 +78090,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
@@ -76033,28 +78102,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
@@ -76084,10 +78144,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,
@@ -76120,10 +78183,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,
@@ -76150,11 +78236,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,
@@ -76170,10 +78285,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,
@@ -76193,14 +78304,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,
@@ -76284,19 +78387,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,
@@ -76314,6 +78404,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"
@@ -76362,6 +78475,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
@@ -76372,12 +78502,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,
@@ -76414,26 +78538,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
@@ -76464,6 +78568,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"
@@ -76479,6 +78595,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
@@ -76488,16 +78617,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{
@@ -76513,6 +78632,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" = (
@@ -76544,13 +78664,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,
@@ -76564,12 +78680,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
@@ -76588,15 +78698,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,
@@ -76610,6 +78721,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{
@@ -76650,14 +78769,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;
@@ -76668,10 +78779,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,
@@ -76701,6 +78808,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)
@@ -76718,38 +78832,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";
@@ -76760,11 +78855,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
@@ -76785,6 +78875,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{
@@ -76798,6 +78896,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,
@@ -76805,11 +78922,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";
@@ -76823,6 +78945,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,
@@ -76854,11 +78983,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{
@@ -76917,6 +79052,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,
@@ -76926,15 +79077,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
@@ -76968,23 +79117,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
@@ -76998,13 +79130,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
@@ -77034,6 +79172,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
@@ -77041,10 +79183,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{
@@ -77082,10 +79220,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"
@@ -77116,6 +79250,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)
@@ -77125,6 +79269,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
@@ -77136,32 +79286,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
@@ -77172,19 +79296,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
@@ -77198,11 +79321,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,
@@ -77245,6 +79394,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{
@@ -77302,6 +79467,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,
@@ -77326,9 +79496,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,
@@ -77348,6 +79530,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,
@@ -77378,16 +79566,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
@@ -77411,16 +79589,26 @@
/obj/effect/mapping_helpers/airlock/access/any/command/ai_upload,
/turf/open/floor/plating,
/area/station/ai_monitored/turret_protected/aisat_interior)
-"xdk" = (
-/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)
+"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{
@@ -77431,10 +79619,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
@@ -77448,21 +79632,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,
@@ -77481,10 +79656,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,
@@ -77550,10 +79756,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,
@@ -77626,25 +79862,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";
@@ -77705,14 +79951,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/carpet/blue,
/area/station/hallway/secondary/entry)
-"xhg" = (
-/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)
"xhk" = (
/turf/open/floor/iron/dark,
/area/station/commons/storage/primary)
@@ -77752,6 +79990,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,
@@ -77764,6 +80012,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"
@@ -77775,14 +80027,23 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/transit_tube)
-"xij" = (
-/obj/structure/railing{
- dir = 1
+"xiq" = (
+/obj/machinery/computer/security/telescreen/interrogation/directional/north,
+/obj/effect/turf_decal/tile/red/anticorner/contrasted{
+ dir = 4
},
-/obj/machinery/smartfridge/petri/preloaded,
-/obj/machinery/light_switch/directional/west,
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
+/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,
@@ -77804,6 +80065,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
@@ -77829,10 +80098,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{
@@ -77841,12 +80106,6 @@
/obj/vehicle/ridden/janicart,
/turf/open/floor/iron,
/area/station/service/janitor)
-"xjs" = (
-/obj/structure/railing/corner/end{
- dir = 8
- },
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
"xjC" = (
/turf/open/floor/plating,
/area/station/maintenance/department/cargo)
@@ -77876,14 +80135,14 @@
},
/turf/open/floor/plating,
/area/station/cargo/sorting)
-"xjU" = (
-/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/firedoor/heavy,
-/turf/open/floor/iron/white,
-/area/station/science/research)
+"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,
@@ -77894,32 +80153,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,
@@ -77930,17 +80191,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,
@@ -77995,17 +80258,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,
@@ -78017,6 +80269,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,
@@ -78028,6 +80290,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,
@@ -78038,17 +80310,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,
@@ -78082,40 +80351,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,
-/obj/structure/fence{
- dir = 4
- },
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
"xnE" = (
/obj/machinery/duct,
/obj/effect/turf_decal/tile/yellow{
@@ -78123,6 +80364,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{
@@ -78150,18 +80401,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,
@@ -78198,16 +80456,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,
@@ -78216,26 +80464,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";
@@ -78248,19 +80511,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,
@@ -78278,25 +80557,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,
@@ -78340,17 +80600,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,
@@ -78361,12 +80610,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,
@@ -78383,28 +80626,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)
-"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
@@ -78412,15 +80633,12 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/station/medical/medbay/aft)
-"xte" = (
-/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)
+"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{
@@ -78446,12 +80664,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,
@@ -78459,33 +80671,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)
@@ -78518,29 +80744,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{
@@ -78551,6 +80767,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
@@ -78586,9 +80810,12 @@
/obj/effect/landmark/start/chemist,
/turf/open/floor/iron/dark,
/area/station/medical/chemistry)
-"xvx" = (
-/turf/open/misc/asteroid/snow/standard_air,
-/area/station/science/cytology)
+"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{
@@ -78596,10 +80823,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,
@@ -78609,10 +80858,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{
@@ -78620,6 +80865,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{
@@ -78633,6 +80890,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{
@@ -78698,12 +80961,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,
@@ -78714,10 +80971,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,
@@ -78753,12 +81024,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,
@@ -78777,19 +81042,6 @@
/obj/structure/flora/grass/brown/style_random,
/turf/open/misc/asteroid/snow/icemoon,
/area/icemoon/underground/explored)
-"xxZ" = (
-/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)
"xyc" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
@@ -78804,7 +81056,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,
@@ -78830,6 +81082,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,
@@ -78871,11 +81129,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,
@@ -78909,6 +81169,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"
@@ -78923,6 +81194,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,
@@ -78961,14 +81242,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)
@@ -79001,6 +81274,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{
@@ -79011,15 +81291,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,
@@ -79032,13 +81333,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
@@ -79066,24 +81360,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,
@@ -79092,42 +81368,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)
@@ -79145,6 +81385,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,
@@ -79183,6 +81431,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)
@@ -79202,6 +81455,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,
@@ -79220,14 +81518,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,
@@ -79235,6 +81525,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{
@@ -79264,10 +81560,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,
@@ -79289,53 +81585,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,
@@ -79343,6 +81622,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{
@@ -79357,14 +81642,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,
@@ -79380,72 +81657,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/effect/turf_decal/bot{
- dir = 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)
-"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{
@@ -79479,6 +81690,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
@@ -79492,6 +81716,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
@@ -79536,26 +81778,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
@@ -79598,6 +81846,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,
@@ -79611,17 +81868,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"
@@ -79664,9 +81928,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,
@@ -79693,6 +81954,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
@@ -79702,25 +81969,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
@@ -79742,6 +82011,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";
@@ -79751,6 +82024,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
@@ -79760,23 +82038,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,
@@ -79801,28 +82077,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,
@@ -79854,16 +82108,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
@@ -79871,11 +82145,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";
@@ -79886,6 +82155,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
@@ -79895,65 +82170,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,
@@ -80027,8 +82270,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,
@@ -80042,10 +82315,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,
@@ -80072,27 +82341,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,
@@ -80102,6 +82350,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,
@@ -80110,13 +82372,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,
@@ -80134,6 +82389,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
@@ -80151,40 +82411,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"
@@ -80206,16 +82462,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,
@@ -80249,6 +82516,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,
@@ -80259,6 +82532,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{
@@ -80266,14 +82547,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,
@@ -80304,10 +82577,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{
@@ -80316,12 +82585,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,
@@ -80336,21 +82604,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)
@@ -80379,15 +82683,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
@@ -80399,11 +82694,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,
@@ -80413,16 +82729,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
@@ -80435,8 +82741,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" = (
@@ -80496,13 +82802,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,
@@ -80512,28 +82811,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,
@@ -80544,19 +82826,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,
@@ -80575,6 +82851,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{
@@ -80584,19 +82880,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,
@@ -80609,13 +82923,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" = (
@@ -80644,10 +82951,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;
@@ -80690,21 +83007,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)
@@ -80719,21 +83039,19 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron/showroomfloor,
/area/station/security/prison/mess)
-"ybe" = (
-/obj/structure/rack,
-/obj/item/soap{
- pixel_y = -2
+"ybb" = (
+/obj/effect/turf_decal/trimline/green/filled/line{
+ dir = 1
},
-/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")
+/obj/effect/turf_decal/trimline/blue/filled/warning{
+ dir = 1
},
-/turf/open/floor/iron/smooth_large,
-/area/station/science/cytology)
+/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" = (
@@ -80746,15 +83064,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,
@@ -80770,6 +83079,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,
@@ -80781,11 +83101,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,
@@ -80815,6 +83130,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"
@@ -80850,18 +83171,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,
@@ -80907,6 +83224,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,
@@ -80921,12 +83246,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,
@@ -80936,17 +83255,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)
@@ -80957,11 +83265,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,
@@ -81018,6 +83321,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
@@ -81029,26 +83361,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,
@@ -81056,6 +83389,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,
@@ -81063,10 +83404,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)
@@ -81078,6 +83419,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,
@@ -81086,50 +83433,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,
@@ -81137,6 +83483,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,
@@ -81167,6 +83517,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,
@@ -81178,19 +83532,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,
@@ -81205,11 +83546,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
@@ -81225,6 +83561,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)
@@ -81233,10 +83579,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,
@@ -81255,12 +83597,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,
@@ -81275,16 +83618,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{
@@ -81299,13 +83642,6 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos/storage)
-"ylQ" = (
-/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)
"ylU" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -81322,23 +83658,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
@@ -97685,14 +100021,14 @@ sYA
ghx
ghx
ghx
-vXO
+ohO
hMz
ghx
-hMz
+ghx
psb
+dmw
scw
-scw
-jSy
+iDt
xMq
xMq
xMq
@@ -97945,13 +100281,13 @@ ghx
isU
ghx
ghx
-hMz
+ghx
hUy
dZS
xuo
scw
iDt
-qau
+bNC
thA
thA
thA
@@ -98208,8 +100544,8 @@ stA
xuo
xuo
xuo
-nqv
-thA
+qau
+dMn
thA
thA
thA
@@ -98963,7 +101299,7 @@ ghx
ghx
ghx
ndA
-mSH
+pWp
ngM
kgN
wDU
@@ -98971,7 +101307,7 @@ sKo
sKo
sKo
wDU
-kUP
+tdI
okH
qSq
ghx
@@ -99218,13 +101554,13 @@ ghx
ghx
ghx
cpt
-dLH
-kIX
+wPG
+ckL
xuo
xuo
qlU
wDU
-roa
+hDe
wRN
qPX
wDU
@@ -99474,8 +101810,8 @@ ghx
ghx
ghx
iDt
-aNc
-xuo
+ewo
+eIv
xuo
xuo
xuo
@@ -99731,16 +102067,16 @@ thA
thA
thA
iDt
-sxe
+jRi
xuo
xuo
qJT
wDU
tbX
qmt
-nAa
+mct
qLQ
-vBg
+dtR
qmt
tbX
wDU
@@ -99993,13 +102329,13 @@ xuo
xuo
xuo
dBY
-moc
+mnm
tGi
kBX
fdp
qiF
dBY
-moc
+mnm
tGi
xuo
xuo
@@ -100245,16 +102581,16 @@ thA
thA
thA
iDt
-sxe
+jRi
xuo
-qJT
+coe
wDU
qmt
qmt
qmt
-jpi
+uJd
tYz
-gle
+soq
qmt
qmt
qmt
@@ -100263,7 +102599,7 @@ tbX
tbX
wDU
wDU
-ghx
+etz
ghx
ghx
ghx
@@ -100504,7 +102840,7 @@ thA
iDt
psb
rxz
-qlU
+gFX
wDU
aNw
qmt
@@ -100759,10 +103095,10 @@ thA
thA
thA
iDt
-xuo
+txm
wDU
wDU
-qmt
+ijV
nfr
kLa
giV
@@ -100771,7 +103107,7 @@ eVa
gSO
tmE
qmt
-iBd
+nbs
chO
doM
ezl
@@ -101016,14 +103352,14 @@ thA
thA
thA
iDt
-xuo
+txm
wDU
krn
-xvO
-nfr
+rFh
qmt
qmt
-ymb
+qmt
+nGY
eVa
rnx
fYH
@@ -101273,19 +103609,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
@@ -101535,9 +103871,9 @@ qmt
qmt
kLa
qmt
-qmt
-sAa
-qKk
+vlF
+kyM
+vzG
wbH
lIR
uUT
@@ -101548,7 +103884,7 @@ uUT
uUT
uUT
wDU
-scw
+mrk
ghx
ghx
thA
@@ -101791,10 +104127,10 @@ wDU
btB
gfw
nfr
-igq
qmt
qmt
-gSK
+qmt
+bcs
tYz
vTb
rmB
@@ -102013,10 +104349,10 @@ ghx
ghx
ghx
psb
-fSd
+iYq
hUK
-gqG
-thA
+psb
+lGf
thA
thA
thA
@@ -102047,7 +104383,7 @@ iDt
wDU
uqz
bRC
-nfr
+tIM
jAu
qmt
ofz
@@ -102303,7 +104639,7 @@ thA
iDt
wDU
ljP
-uqz
+xHx
bQN
tnb
qmt
@@ -102824,13 +105160,13 @@ vfp
niN
eSY
uyq
-gdS
+hDv
uUT
-bzJ
+dPH
srZ
jla
ebv
-mXD
+xLJ
nUi
scw
iDt
@@ -103004,7 +105340,7 @@ thA
thA
thA
rfu
-ghx
+etz
ghx
ghx
ghx
@@ -103079,9 +105415,9 @@ dga
scw
dga
niN
-qqn
+vxx
uyq
-xVX
+bTM
uUT
uUT
vlS
@@ -103089,7 +105425,7 @@ hex
uUT
iwf
iwf
-wkV
+xvp
iDt
iDt
ghx
@@ -103330,8 +105666,8 @@ thA
ipf
cCb
iDt
-mJZ
-iDt
+jai
+wkB
scw
scw
scw
@@ -103340,14 +105676,14 @@ bfo
sZO
wDU
iwf
-cEh
+oXF
+dNA
dNA
-weg
iwf
lQw
fWX
-nqv
-iDt
+kLd
+wkB
iDt
ghx
thA
@@ -103553,11 +105889,11 @@ thA
thA
thA
xuo
-wYp
-odW
+psb
+mIe
uWw
psb
-ghx
+etz
ghx
ghx
ghx
@@ -103587,7 +105923,7 @@ thA
thA
thA
iDt
-rcY
+aDG
iDt
scw
scw
@@ -103603,7 +105939,7 @@ gvc
iwf
unv
wrV
-qau
+bNC
iDt
cCb
ghx
@@ -103844,7 +106180,7 @@ thA
thA
thA
iDt
-rcY
+aDG
iDt
iDt
iDt
@@ -103859,8 +106195,8 @@ cPd
hYP
aro
agI
-scw
-qau
+iDt
+bNC
iDt
iDt
thA
@@ -104101,7 +106437,7 @@ thA
thA
thA
iDt
-rcY
+bNC
iDt
iDt
iDt
@@ -104110,13 +106446,13 @@ scw
scw
scw
scw
-mJZ
-iDt
+jai
+wkB
scw
scw
-rcY
+jai
+iDt
iDt
-scw
qau
iDt
iDt
@@ -104358,23 +106694,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
@@ -104806,7 +107142,7 @@ uOb
rfu
omJ
rfu
-pjj
+kOc
daf
kmH
oBz
@@ -104981,146 +107317,119 @@ 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
+"}
+(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
+thA
+thA
thA
thA
thA
@@ -105128,6 +107437,32 @@ 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
@@ -105137,6 +107472,7 @@ thA
thA
thA
thA
+iYD
thA
thA
iDt
@@ -105580,7 +107916,7 @@ rfu
ooW
ooW
rfu
-xuo
+jrv
xuo
xlq
ghx
@@ -106082,7 +108418,7 @@ ifZ
amx
ddz
lBR
-fIb
+vzp
fnj
egz
hsr
@@ -106602,7 +108938,7 @@ kqh
kqh
ttD
nNn
-sxT
+urm
tKB
foO
bdo
@@ -106843,11 +109179,11 @@ ghx
ghx
ghx
ghx
-gBl
+fIt
uSb
uSb
uSb
-gBl
+fIt
uOb
uOb
lBR
@@ -106869,7 +109205,7 @@ kIi
rfu
rfu
rfu
-ghx
+akn
ghx
ghx
ghx
@@ -107107,13 +109443,13 @@ tWK
tWK
tWK
xhK
-tsK
+tnD
jGg
vVH
-krV
+gkN
ogL
jZI
-duI
+aHw
vVH
vVH
vVH
@@ -107122,9 +109458,9 @@ nNn
gzV
nNn
nNn
-axb
-tCV
-cFc
+evP
+bVs
+dgx
mJX
ghx
ghx
@@ -107138,8 +109474,8 @@ ghx
ghx
ghx
ghx
-lcA
-ghx
+psb
+etz
thA
thA
thA
@@ -107367,10 +109703,10 @@ xby
dSm
hMS
vVH
-uoS
+nGo
wPg
fHg
-eek
+mkb
vVH
fps
usS
@@ -107636,7 +109972,7 @@ vUs
kqR
hjQ
nNn
-scQ
+eCg
aJu
ong
mJX
@@ -108156,17 +110492,17 @@ puc
kGP
sEC
dbH
+akn
ghx
ghx
ghx
ghx
ghx
ghx
-ghx
-lcA
psb
psb
-lcA
+psb
+psb
thA
thA
thA
@@ -108390,9 +110726,9 @@ ghx
ghx
ghx
eZz
-efi
+uOs
xhK
-nCQ
+nGd
swf
vVH
jli
@@ -108420,7 +110756,7 @@ ghx
ghx
ghx
ghx
-rcY
+pJm
iDt
thA
thA
@@ -108647,7 +110983,7 @@ ghx
ghx
ghx
iDt
-nbP
+fgN
xhK
ikb
swf
@@ -108677,7 +111013,7 @@ ghx
ghx
ghx
ghx
-rcY
+pJm
iDt
thA
thA
@@ -108912,9 +111248,9 @@ vVH
vVH
dZW
fHg
-lJS
-bol
-oSD
+ayS
+aze
+lsn
ldH
xQm
yaZ
@@ -108934,8 +111270,8 @@ ghx
ghx
ghx
ghx
-lcA
-iDt
+psb
+mbJ
thA
thA
thA
@@ -109169,9 +111505,9 @@ nId
myQ
sby
fHg
-bol
-bol
-oSD
+aEY
+oad
+gAV
ldH
qiJ
qTs
@@ -110191,7 +112527,7 @@ ghx
ghx
axF
dcw
-fGI
+sKT
sSl
etw
lXJ
@@ -110212,7 +112548,7 @@ iJr
vSK
kse
dbH
-ghx
+akn
ghx
ghx
ghx
@@ -110477,7 +112813,7 @@ ghx
ghx
ghx
psb
-iDt
+mbJ
thA
thA
thA
@@ -110985,7 +113321,7 @@ psb
psb
psb
fIt
-ghx
+etz
ghx
ghx
ghx
@@ -111192,10 +113528,10 @@ dhq
dhq
dhq
dhq
-dhq
-dhq
-dhq
-dhq
+iZz
+iZz
+iZz
+iZz
dhq
dhq
dhq
@@ -111447,8 +113783,8 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
+iZz
+iZz
iDt
iDt
scw
@@ -111463,8 +113799,8 @@ iDt
scw
scw
iDt
-iDt
-ghx
+fIt
+tvk
ghx
ghx
ghx
@@ -111476,7 +113812,7 @@ ghx
ghx
ghx
dcw
-bDd
+cdp
hBF
owf
bkX
@@ -111703,9 +114039,9 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
scw
scw
scw
@@ -111720,7 +114056,7 @@ scw
scw
scw
scw
-iDt
+iwV
ghx
ghx
ghx
@@ -111960,9 +114296,9 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
scw
scw
scw
@@ -111977,7 +114313,7 @@ iDt
iDt
iDt
iDt
-scw
+gem
ghx
ghx
ghx
@@ -112001,7 +114337,7 @@ thA
uPk
jYj
uAE
-dKS
+eni
dbH
dbH
dbH
@@ -112013,7 +114349,7 @@ psb
psb
psb
fIt
-ghx
+etz
ghx
ghx
ghx
@@ -112215,11 +114551,11 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+iZz
scw
iDt
scw
@@ -112234,7 +114570,7 @@ scw
scw
scw
scw
-iDt
+iwV
ghx
ghx
ghx
@@ -112471,12 +114807,12 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+iZz
+iZz
iDt
iDt
scw
@@ -112491,7 +114827,7 @@ scw
scw
scw
iDt
-iDt
+iwV
ghx
ghx
ghx
@@ -112728,12 +115064,12 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+iZz
+iZz
scw
iDt
scw
@@ -112748,7 +115084,7 @@ scw
scw
scw
scw
-iDt
+iwV
ghx
ghx
ghx
@@ -112985,12 +115321,12 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+fKw
+iZz
iDt
iDt
scw
@@ -113005,7 +115341,7 @@ scw
scw
iDt
scw
-iDt
+iwV
ghx
ghx
ghx
@@ -113242,12 +115578,12 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+iZz
+iZz
scw
iDt
scw
@@ -113262,7 +115598,7 @@ scw
iDt
scw
iDt
-iDt
+iwV
ghx
ghx
ghx
@@ -113499,12 +115835,12 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+fKw
+iZz
scw
scw
iDt
@@ -113519,7 +115855,7 @@ scw
scw
iDt
scw
-scw
+gem
ghx
ghx
ghx
@@ -113545,7 +115881,7 @@ oXd
bJp
qdl
uPk
-scw
+ltH
ghx
ghx
ghx
@@ -113756,12 +116092,12 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+fKw
+iZz
iDt
scw
iDt
@@ -113776,7 +116112,7 @@ scw
scw
iDt
iDt
-iDt
+iwV
ghx
ghx
ghx
@@ -113802,7 +116138,7 @@ uPk
uPk
uPk
uPk
-ghx
+etz
ghx
ghx
ghx
@@ -114013,12 +116349,12 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+iZz
+iZz
vjh
dLN
dLN
@@ -114031,10 +116367,10 @@ vjh
vjh
uPl
vjh
-ghx
-ghx
-ghx
-ghx
+hMv
+qxN
+fIt
+tvk
ghx
ghx
ghx
@@ -114270,12 +116606,12 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+fKw
+fKw
+iZz
vjh
dqx
oDg
@@ -114288,7 +116624,7 @@ wAQ
njJ
kcf
vjh
-ghx
+scw
ghx
ghx
ghx
@@ -114301,7 +116637,7 @@ iDt
iDt
iDt
iDt
-xMq
+iDt
xMq
thA
thA
@@ -114527,12 +116863,12 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+iZz
+iZz
vjh
szu
hdV
@@ -114558,7 +116894,7 @@ iDt
iDt
iDt
iDt
-xMq
+iDt
xMq
xMq
thA
@@ -114784,9 +117120,9 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
dLN
dLN
dLN
@@ -114798,8 +117134,8 @@ dqx
njJ
cVD
njJ
-eCz
-oFp
+hpl
+dqx
dqx
vjh
nTO
@@ -114811,12 +117147,12 @@ eQT
eQT
eQT
nTO
+kXf
+iDt
iDt
iDt
iDt
iDt
-xMq
-xMq
xMq
xMq
thA
@@ -115040,10 +117376,10 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+fKw
dLN
wxg
ipd
@@ -115068,14 +117404,14 @@ kAG
pdc
xzp
iSf
-dBw
+faV
+iDt
+iDt
+iDt
+iDt
iDt
iDt
iDt
-xMq
-xMq
-xMq
-xMq
xMq
thA
thA
@@ -115296,11 +117632,11 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-xMx
+iZz
+iZz
+iZz
+fKw
+oIv
vjh
pRZ
uYj
@@ -115327,11 +117663,11 @@ jvM
nTO
nTO
nTO
-nJm
+fqG
+iDt
+iDt
+iDt
iDt
-xMq
-xMq
-xMq
xMq
xMq
xMq
@@ -115551,13 +117887,13 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
-iDt
-lCM
+iZz
+iZz
+iZz
+iZz
+iZz
+fKw
+lxY
vjh
aYQ
bLL
@@ -115586,8 +117922,8 @@ tmB
kCH
iDt
iDt
-xMq
-xMq
+iDt
+iDt
xMq
xMq
thA
@@ -115807,11 +118143,11 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+iZz
dLN
dLN
dLN
@@ -115823,10 +118159,10 @@ njJ
bEi
rVX
dqx
-pSn
-cCF
-iAA
-wDs
+qJC
+pzx
+bqz
+tXM
vjh
vjh
vjh
@@ -115841,10 +118177,10 @@ aWV
nTO
nTO
nTO
+kXf
iDt
iDt
xMq
-xMq
thA
thA
thA
@@ -116064,17 +118400,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
@@ -116100,7 +118436,7 @@ cRE
eQT
iDt
iDt
-xMq
+iDt
xMq
thA
thA
@@ -116321,26 +118657,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
@@ -116357,7 +118693,7 @@ rmv
eQT
iDt
iDt
-xMq
+iDt
xMq
thA
thA
@@ -116578,11 +118914,11 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
+fKw
dLN
sWo
kmA
@@ -116613,7 +118949,7 @@ iGj
nTO
nTO
nTO
-iDt
+mbJ
xMq
xMq
thA
@@ -116835,11 +119171,11 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+fKw
+iZz
vjh
sWo
njJ
@@ -117091,12 +119427,12 @@ dhq
dhq
dhq
dhq
-dhq
-iDt
-iDt
-iDt
-iDt
-aVq
+iZz
+iZz
+iZz
+iZz
+fKw
+myW
vjh
sWo
njJ
@@ -117120,7 +119456,7 @@ eQT
eQT
eQT
nTO
-ghx
+akn
iDt
nTO
kJw
@@ -117348,12 +119684,12 @@ dhq
dhq
dhq
dhq
-dhq
-iDt
-iDt
-iDt
-iDt
-aVq
+iZz
+iZz
+iZz
+iZz
+iZz
+myW
vjh
mYi
njJ
@@ -117605,14 +119941,14 @@ dhq
dhq
dhq
dhq
-dhq
-iDt
-iDt
-qXg
+iZz
+iZz
+iZz
+bqf
vjh
vjh
vjh
-fXP
+nZC
eQH
hDK
dqx
@@ -117621,7 +119957,7 @@ dqx
rXg
njJ
uTo
-dqx
+cCG
njJ
rKs
hLk
@@ -117641,7 +119977,7 @@ cpe
cpe
nTO
nTO
-iDt
+mbJ
xMq
xMq
thA
@@ -117862,10 +120198,10 @@ dhq
dhq
dhq
dhq
-dhq
-iDt
-iDt
-iDt
+iZz
+iZz
+fKw
+fKw
aqa
oDB
nhT
@@ -118119,10 +120455,10 @@ dhq
dhq
dhq
dhq
-dhq
-iDt
-iDt
-qXg
+iZz
+iZz
+iZz
+bqf
vjh
vjh
vjh
@@ -118154,7 +120490,7 @@ nTO
nTO
nTO
nTO
-iDt
+mbJ
iDt
xMq
xMq
@@ -118376,11 +120712,11 @@ dhq
dhq
dhq
dhq
-dhq
-iDt
-iDt
-iDt
-uEA
+iZz
+iZz
+iZz
+iZz
+mbq
dLN
hlE
dqx
@@ -118392,7 +120728,7 @@ kpH
dqx
njJ
isc
-dqx
+mEb
njJ
bsd
fBs
@@ -118634,10 +120970,10 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
+iZz
+mBV
+iZz
+fKw
dLN
dqx
dqx
@@ -118670,7 +121006,7 @@ iDt
iDt
iDt
iDt
-xMq
+iDt
xMq
thA
thA
@@ -118891,10 +121227,10 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-ssu
-iDt
+iZz
+iZz
+nxP
+iZz
dLN
rbT
mts
@@ -118905,13 +121241,13 @@ njJ
njJ
wRK
vjh
-twb
-pzD
+oCo
+dFR
vjh
vjh
vjh
vjh
-ghx
+etz
ghx
ghx
ghx
@@ -118927,7 +121263,7 @@ iDt
iDt
iDt
iDt
-xMq
+iDt
xMq
thA
thA
@@ -119148,10 +121484,10 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+mBV
+iZz
dLN
rbT
lLN
@@ -119165,9 +121501,9 @@ vjh
jmc
qDD
dLN
-iDt
-iDt
-ghx
+uqX
+adA
+etz
ghx
ghx
ghx
@@ -119184,7 +121520,7 @@ iDt
iDt
iDt
iDt
-xMq
+iDt
xMq
xMq
thA
@@ -119405,10 +121741,10 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
-iDt
-iDt
+iZz
+iZz
+iZz
+iZz
dLN
dLN
dLN
@@ -119422,8 +121758,8 @@ vjh
dLN
dLN
dLN
-iDt
-iDt
+fKw
+mzl
ghx
ghx
ghx
@@ -119662,25 +121998,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
@@ -119692,9 +122028,9 @@ ghx
ghx
ghx
iDt
-xMq
-xMq
-xMq
+iDt
+iDt
+iDt
xMq
xMq
xMq
@@ -119919,25 +122255,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
@@ -119949,7 +122285,7 @@ ghx
ghx
ghx
iDt
-xMq
+iDt
xMq
xMq
xMq
@@ -120176,25 +122512,25 @@ dhq
dhq
dhq
dhq
-iDt
-iDt
+iZz
+iZz
dhq
-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
+mzl
ghx
ghx
ghx
@@ -120437,21 +122773,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
@@ -120694,21 +123030,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
@@ -120828,7 +123164,7 @@ oSU
szG
szG
iDt
-daZ
+tla
iDt
szG
oSU
@@ -120957,16 +123293,16 @@ dhq
dhq
dhq
dhq
+iZz
+iZz
+iZz
+iZz
+iZz
dhq
dhq
dhq
-dhq
-dhq
-dhq
-dhq
-dhq
-dhq
-ghx
+adA
+etz
ghx
ghx
ghx
@@ -128256,7 +130592,7 @@ iDt
iDt
iDt
iDt
-fIt
+bwh
oSU
oSU
oSU
@@ -128507,13 +130843,13 @@ oSU
oSU
oSU
xMq
-cbu
+wUm
iDt
iDt
iDt
iDt
-iLP
-fIt
+gwW
+bwh
oSU
oSU
oSU
@@ -128764,13 +131100,13 @@ oSU
iDt
iDt
xMq
-cbu
+wUm
iDt
iDt
iDt
iDt
mrI
-fIt
+bwh
oSU
oSU
oSU
@@ -129019,15 +131355,15 @@ oSU
oSU
iDt
iDt
-jZN
-rcY
+xYQ
+aKb
iDt
iDt
iDt
iDt
iDt
scw
-fIt
+bwh
oSU
oSU
oSU
@@ -129282,9 +131618,9 @@ iDt
iDt
iDt
iDt
-qjs
-fIt
-fIt
+hWz
+bwh
+bwh
oSU
oSU
oSU
@@ -129533,16 +131869,16 @@ oSU
iDt
iDt
iDt
-jZN
-rcY
+xYQ
+pJm
iDt
iDt
iDt
iDt
iDt
iDt
-fIt
-fIt
+bwh
+bwh
oSU
oSU
oSU
@@ -129688,10 +132024,10 @@ dhq
dhq
dhq
dhq
-iZz
-iZz
-iZz
-iZz
+iDt
+iDt
+iDt
+iDt
ghx
ghx
ghx
@@ -129799,8 +132135,8 @@ iDt
iDt
iDt
iDt
-fIt
-fIt
+bwh
+bwh
oSU
oSU
oSU
@@ -129946,8 +132282,8 @@ dhq
dhq
dhq
dhq
-iZz
-iZz
+iDt
+iDt
ghx
ghx
ghx
@@ -130057,7 +132393,7 @@ iDt
iDt
iDt
iDt
-fIt
+bwh
oSU
oSU
oSU
@@ -130203,7 +132539,7 @@ dhq
dhq
dhq
dhq
-iZz
+iDt
ghx
ghx
ghx
@@ -130313,6 +132649,8 @@ xMq
xMq
xMq
xMq
+iDt
+iDt
xMq
xMq
oSU
@@ -130424,8 +132762,6 @@ oSU
oSU
oSU
oSU
-oSU
-oSU
"}
(192,1,1) = {"
dhq
@@ -130571,11 +132907,11 @@ oSU
oSU
oSU
oSU
-oSU
-oSU
-oSU
-oSU
-oSU
+iDt
+scw
+scw
+scw
+xMq
oSU
oSU
oSU
@@ -130829,11 +133165,11 @@ oSU
oSU
oSU
oSU
-oSU
-oSU
-oSU
-oSU
-oSU
+iDt
+scw
+wme
+scw
+xMq
oSU
oSU
oSU
@@ -131086,11 +133422,11 @@ oSU
oSU
oSU
oSU
-oSU
-oSU
-oSU
-oSU
-oSU
+xMq
+iDt
+scw
+scw
+xMq
oSU
oSU
oSU
@@ -131344,8 +133680,8 @@ oSU
oSU
oSU
oSU
-oSU
-oSU
+xMq
+xMq
oSU
oSU
oSU
@@ -132764,8 +135100,8 @@ dhq
dhq
dhq
dhq
-iZz
-iZz
+iDt
+iDt
ghx
ghx
ghx
@@ -133021,7 +135357,7 @@ dhq
dhq
dhq
dhq
-iZz
+iDt
ghx
ghx
ghx
@@ -133278,7 +135614,7 @@ dhq
dhq
dhq
dhq
-iZz
+iDt
ghx
ghx
ghx
@@ -133535,7 +135871,7 @@ dhq
dhq
dhq
dhq
-iZz
+iDt
ghx
ghx
ghx
@@ -159372,7 +161708,7 @@ rex
rNc
icu
rOB
-rcx
+dKk
ksi
sJH
lwR
@@ -159613,17 +161949,17 @@ thA
thA
thA
thA
-oif
-eJf
+gFX
+pFv
eJf
eJf
-keu
+faL
eJf
eJf
eJf
lwR
sJH
-irM
+gps
veK
tUC
fjQ
@@ -159632,10 +161968,10 @@ xuB
jkn
jkn
iyE
-ncO
-vAj
+qAP
+cHA
lwR
-iDt
+mbJ
scw
iDt
iDt
@@ -160146,7 +162482,7 @@ drD
jkn
jkn
sEq
-vZS
+boU
aez
sEq
scw
@@ -160400,7 +162736,7 @@ sJH
oLs
xaV
diV
-ebK
+uJi
uzs
sJH
tUK
@@ -161657,7 +163993,7 @@ thA
thA
thA
thA
-thA
+lGf
thA
thA
gjq
@@ -161938,7 +164274,7 @@ gjq
gjq
gjq
bOz
-aVp
+ouq
icB
sGE
diV
@@ -162170,8 +164506,8 @@ thA
thA
szG
szG
-oif
-thA
+gFX
+lGf
gjq
gjq
gjq
@@ -163198,13 +165534,13 @@ szG
szG
myZ
eJf
-keu
+faL
eJf
eJf
eJf
eJf
-oif
-szG
+gFX
+wjA
gjq
gjq
gjq
@@ -163460,14 +165796,14 @@ gjq
gjq
gjq
gFX
-szG
+wjA
szG
gjq
gjq
gjq
-mTW
+ocS
gjq
-mTW
+ocS
gjq
gjq
gjq
@@ -163697,14 +166033,14 @@ thA
iLh
jqj
aiA
-wVq
+msu
dcW
kjt
-mUz
+wGZ
kUU
hSt
tKq
-sGM
+fqM
haD
lrz
iLh
@@ -163736,24 +166072,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
@@ -163952,7 +166288,7 @@ thA
thA
thA
iLh
-gAd
+tkT
ukd
iLh
aBX
@@ -163967,7 +166303,7 @@ iLh
iLh
iwS
iwS
-sbf
+mbJ
scw
iDt
scw
@@ -164215,16 +166551,16 @@ ini
dwo
eKN
oQt
-ydH
+hTI
wUu
xrs
iLh
vad
-kMP
+wjP
wMw
hoZ
iwS
-iDt
+ixl
iDt
iDt
iDt
@@ -164235,7 +166571,7 @@ gjq
gjq
gjq
gjq
-mUf
+daO
aFG
hZe
xuo
@@ -164469,14 +166805,14 @@ iLh
hYb
iLh
iLh
-fGJ
+xvd
nAg
fkt
oQt
xrs
ilD
iLh
-pog
+hIW
qPs
xCr
wds
@@ -164499,14 +166835,14 @@ nia
sjb
hpM
sjb
-eJf
+pFv
eJf
eJf
uBy
-gQe
-gQe
-gQe
-nzG
+avs
+avs
+avs
+aGR
eJf
gjq
gOU
@@ -164718,7 +167054,7 @@ thA
thA
thA
iDt
-kcW
+thA
ivF
ivF
xUF
@@ -164733,8 +167069,8 @@ iLh
iLh
iLh
iLh
-xkH
-oeB
+qPb
+jSN
qxI
sTh
qMo
@@ -164743,27 +167079,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
@@ -164979,8 +167315,8 @@ iDt
snd
kkA
erw
-wrl
-aOa
+abQ
+cGS
uhb
aSC
cQi
@@ -164989,13 +167325,13 @@ ivF
sqb
gVm
iwS
-iJM
-dNl
-qxI
+wPJ
+qVK
+bpq
qxI
rVC
qMo
-iDt
+scw
iDt
ijY
iDt
@@ -165007,7 +167343,7 @@ gjq
gjq
gjq
sjb
-sjx
+xDj
xgO
rHk
wQr
@@ -165246,13 +167582,13 @@ ivF
pcc
fdX
iwS
-iJM
-dNl
-qxI
+xdh
+otf
+bYR
qxI
coT
qMo
-iDt
+scw
iDt
iDt
iDt
@@ -165267,8 +167603,8 @@ sjb
qEu
jIX
sgV
-vpl
-tQE
+cEl
+rES
vSi
qLm
qLm
@@ -165276,7 +167612,7 @@ qLm
vSi
bie
bie
-vzI
+cMk
bie
bie
cMk
@@ -165287,11 +167623,11 @@ cMk
eJf
eJf
eJf
-keu
+faL
eJf
eJf
-oif
-pfw
+gFX
+rYA
ebd
iDt
iDt
@@ -165493,8 +167829,8 @@ scw
snd
hJp
hby
-czz
-xYr
+nxY
+fHV
jwB
bIo
nit
@@ -165504,13 +167840,13 @@ iwS
iwS
iwS
iwS
-oqj
-kTX
+tiX
+ogu
iJL
dwI
qMo
iDt
-iDt
+scw
iDt
iDt
ebd
@@ -165524,17 +167860,17 @@ cum
mzr
bgU
quY
-nbU
+fvj
vSi
vSi
vdb
mzu
rDn
vSi
-tKf
-lkY
+tEO
+qDA
kZu
-qmT
+bKE
vpc
kZu
aYM
@@ -165757,9 +168093,9 @@ tHX
nit
eZK
ivF
+smp
+hkI
ktp
-lIU
-xrL
iwS
sFd
iuH
@@ -165771,7 +168107,7 @@ gJK
iwS
wkB
iDt
-jZN
+xYQ
gjq
gjq
gjq
@@ -165785,8 +168121,8 @@ jzy
pve
xjZ
bGP
-mIT
-gsF
+hqv
+sYz
vSi
kZu
uOf
@@ -166002,13 +168338,13 @@ gjq
gjq
gjq
gjq
-nfG
-qbU
+ppY
+wEu
ivF
jwH
jwH
jwH
-jHV
+pLS
aLz
jul
oRE
@@ -166038,7 +168374,7 @@ sjb
puX
uig
hPK
-ukv
+ilz
pve
hEm
ksn
@@ -166263,7 +168599,7 @@ gjq
scw
hyj
slX
-kwT
+oXx
ceY
kbq
sLR
@@ -166278,9 +168614,9 @@ nlO
nlO
gwz
nMH
-ciH
+jHh
iwS
-fpC
+gDh
szX
qMo
iDt
@@ -166293,7 +168629,7 @@ gjq
sjb
wQr
wQr
-pcj
+cxI
wVe
wQr
vSi
@@ -166517,7 +168853,7 @@ gjq
gjq
gjq
gjq
-qsq
+gpo
ivF
ivF
ivF
@@ -166528,11 +168864,11 @@ jnR
jnR
ivF
ivF
-nRx
+eat
pEg
uyW
iwS
-kDm
+lJg
ePn
oDV
iqn
@@ -166548,22 +168884,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
@@ -166574,7 +168910,7 @@ hFL
hFL
nWH
gnh
-iDt
+mbJ
iDt
iDt
iDt
@@ -166779,11 +169115,11 @@ gjq
iDt
iDt
iDt
-mdV
+iDt
scw
scw
iDt
-xdY
+thA
iwS
iwS
iwS
@@ -166795,7 +169131,7 @@ iwS
iwS
iwS
iwS
-dYq
+lRn
qMo
iDt
scw
@@ -166805,16 +169141,16 @@ gjq
gjq
gjq
dLf
-vfg
-bQA
-hKT
+iem
+xug
+rTZ
cHZ
gaq
kXr
oGF
ksn
-pZD
-ghQ
+nJL
+kUD
kUD
kUD
nWH
@@ -166823,8 +169159,8 @@ nWH
nWH
nWH
mHe
-dAq
-adm
+sPE
+ceF
dTF
nWH
qeP
@@ -166986,21 +169322,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
@@ -167054,7 +169390,7 @@ thA
iwS
rBM
iwS
-iDt
+nyh
scw
gjq
gjq
@@ -167062,16 +169398,16 @@ gjq
gjq
gjq
dLf
-vfg
-ajw
+gYd
+vRn
rty
lNH
eMa
hrJ
wmT
gDN
-lvT
-wSX
+bGn
+kUD
kUD
kUD
nWH
@@ -167310,7 +169646,7 @@ thA
thA
scw
scw
-xUw
+scw
iDt
gjq
gjq
@@ -167319,17 +169655,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
@@ -167506,15 +169842,15 @@ hPs
gBX
gBX
gBX
-ktt
+hPs
hPs
nDE
nDE
nDE
nDE
nDE
-bUp
-gjq
+nDE
+paw
gjq
gjq
gjq
@@ -167561,15 +169897,15 @@ gjq
gjq
thA
thA
-gqG
-thA
+psb
+lGf
thA
-gqG
-myZ
+psb
+eAW
myZ
myZ
-gqG
-gjq
+psb
+fhL
gjq
gjq
gjq
@@ -167577,9 +169913,9 @@ gjq
gjq
iYt
tDU
-mod
+hcT
bQA
-eIU
+ajw
wUP
hrJ
siI
@@ -167602,7 +169938,7 @@ whb
xjC
nWH
gnh
-iDt
+mbJ
iDt
ulj
iDt
@@ -167768,7 +170104,7 @@ jlF
jNf
dpC
cGQ
-oNW
+txX
nmr
hVY
gjq
@@ -167835,8 +170171,8 @@ gjq
jpS
kNW
kNW
-wxp
-wxp
+ryl
+xNh
kNW
kNW
kNW
@@ -167848,7 +170184,7 @@ nWH
nWH
nWH
nWH
-tCO
+eSA
jRd
sbU
nWH
@@ -168017,8 +170353,8 @@ thA
xMq
iDt
oqL
-ucD
-eaw
+wmP
+vTq
jsp
wSz
nFU
@@ -168102,18 +170438,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
@@ -168309,7 +170645,7 @@ rVB
rVB
rVB
qQf
-gjq
+fhL
gjq
gjq
gjq
@@ -168528,11 +170864,11 @@ thA
thA
thA
thA
-kSw
-iDt
+fIt
+nbB
ktt
-njf
-rBy
+tmy
+lvU
fAV
tGs
obv
@@ -168589,8 +170925,8 @@ gjq
gjq
gjq
gjq
-jXc
-eJf
+psb
+hYM
eJf
psb
myZ
@@ -168788,13 +171124,13 @@ thA
xMq
iDt
hPs
-eSE
-mVI
-elU
-nZi
+bVT
+nPS
+cKy
+mLX
tWO
jNf
-tXd
+pSA
qSo
cPE
cPE
@@ -168864,7 +171200,7 @@ gjq
jpS
kuC
kII
-nmu
+rRn
clz
mml
kNW
@@ -168886,7 +171222,7 @@ rsY
qjV
qjV
rsY
-vek
+hNn
iDt
iDt
iDt
@@ -169051,7 +171387,7 @@ bCp
fYi
tCL
jNf
-wcz
+wSC
hKI
fWe
ozX
@@ -169076,8 +171412,8 @@ ucN
iDt
iDt
qQf
-kxZ
-mES
+ouK
+vkC
sXk
rJz
pFV
@@ -169103,8 +171439,8 @@ gjq
gjq
gjq
gjq
-eFw
-eJf
+psb
+bZC
eJf
psb
myZ
@@ -169145,7 +171481,7 @@ aIB
aIB
dNN
psb
-iDt
+fXL
sVN
iDt
psb
@@ -169305,7 +171641,7 @@ hPs
xLV
xLV
nvE
-uKJ
+vcx
tCL
jNf
fDP
@@ -169320,7 +171656,7 @@ gjq
wUj
qLB
jpy
-vXe
+cgB
ssY
wUj
gjq
@@ -169328,7 +171664,7 @@ ucN
cXZ
cVk
gFj
-vZH
+vtR
kgz
iDt
iDt
@@ -169380,7 +171716,7 @@ jpS
jlK
jpS
szJ
-iKp
+nvy
kNW
rrV
xGt
@@ -169393,17 +171729,17 @@ uUT
vgD
lvQ
sUE
-sdc
-mPq
+rsY
+jcA
scw
-qau
+jai
iDt
iDt
iDt
iDt
iDt
wOR
-xuo
+txm
itY
iDt
thA
@@ -169592,7 +171928,7 @@ iDt
qQf
sEk
qQf
-uxZ
+aPZ
dBp
jZe
qYb
@@ -169633,9 +171969,9 @@ iDt
iDt
ijY
iDt
-iDt
-iDt
aEM
+iDt
+jpS
gKd
gKd
rsY
@@ -169643,7 +171979,7 @@ hdb
avh
qGg
uUT
-fyT
+ccv
lQh
diI
uUT
@@ -169659,7 +171995,7 @@ iDt
cCb
scw
iDt
-xuo
+ohI
tZp
iDt
iDt
@@ -169814,8 +172150,8 @@ iDt
iDt
iDt
oqL
-gLY
-twx
+iCp
+wes
ldz
fvK
cIc
@@ -169827,8 +172163,8 @@ jNf
jNf
jNf
jNf
-xZg
-iDt
+xhK
+kXf
iDt
iDt
wUj
@@ -169849,13 +172185,13 @@ ijY
qQf
qQf
qQf
-uPx
+rIz
cfi
-pjz
+bGS
qQf
qQf
qQf
-pfw
+gVN
scw
iDt
iDt
@@ -169867,7 +172203,7 @@ iDt
iDt
iDt
iDt
-nfG
+ppY
iDt
iDt
iDt
@@ -169896,9 +172232,9 @@ rcY
iDt
iDt
rsY
-mqs
+avi
dTs
-oeP
+cxt
uUT
kmO
rtR
@@ -169910,16 +172246,16 @@ qQt
scw
scw
iDt
-nqv
+qau
+iDt
iDt
iDt
iDt
iDt
-jSQ
cmZ
-xuo
+dNN
iDt
-jZN
+xYQ
thA
thA
thA
@@ -170071,8 +172407,8 @@ iDt
iDt
iDt
oqL
-gvi
-xCa
+lrM
+dnz
axX
auJ
oVy
@@ -170112,7 +172448,7 @@ rGq
gQp
iUG
sXe
-xuo
+vpJ
iDt
iDt
iDt
@@ -170131,15 +172467,15 @@ iDt
iDt
iDt
iDt
-gqG
-scw
+psb
+mrk
iDt
-gqG
-aIB
+psb
+leU
aIB
aIB
-gqG
-iDt
+psb
+mbJ
iDt
iDt
iDt
@@ -170149,10 +172485,10 @@ iDt
iDt
iDt
cCb
-qau
-scw
+jai
+nLB
qXg
-sdc
+rsY
rsY
czq
rsY
@@ -170167,8 +172503,8 @@ scw
scw
iDt
scw
-qau
-ijY
+jai
+jwz
iDt
iDt
iDt
@@ -170327,8 +172663,8 @@ iDt
ijY
hPs
gBX
-oPa
-cjz
+hPs
+tcL
vdW
sTP
jhH
@@ -170346,7 +172682,7 @@ iDt
ijY
pfw
wUj
-dtq
+pYn
jeJ
aFg
vwl
@@ -170367,11 +172703,11 @@ qQf
ofE
awn
qQf
-mri
+rVB
qQf
-ebd
+mCz
iDt
-nfG
+ppY
pfw
thA
thA
@@ -170387,7 +172723,7 @@ thA
thA
thA
thA
-nfG
+ppY
iDt
iDt
iDt
@@ -170395,7 +172731,7 @@ iDt
scw
iDt
iDt
-iDt
+scw
iDt
iDt
iDt
@@ -170406,25 +172742,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
@@ -170588,12 +172924,12 @@ dck
tei
fTF
fTF
-fTF
+dbn
cIc
uTp
oVY
pez
-ccX
+oOg
qLg
vVH
vVH
@@ -170606,15 +172942,15 @@ ntl
hwu
hwu
wUj
-wwL
+vmw
wUj
vOw
-eGW
+jEJ
dZN
eGW
uRk
dDt
-dDt
+crf
wYh
dvw
dDt
@@ -170643,19 +172979,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
@@ -170663,7 +172999,7 @@ iDt
iDt
scw
iDt
-rcY
+qau
scw
iDt
snL
@@ -170671,14 +173007,14 @@ scw
scw
scw
nUi
-nNy
+oTi
cbk
lNa
nUi
iDt
iDt
iDt
-jZN
+xYQ
iDt
iDt
iDt
@@ -170850,21 +173186,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
@@ -170900,22 +173236,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
@@ -170927,11 +173263,12 @@ rxG
iDt
scw
uWE
-qzq
+iwf
iwf
qlk
qlk
iwf
+mbJ
iDt
iDt
iDt
@@ -170940,8 +173277,7 @@ iDt
iDt
iDt
iDt
-iDt
-jZN
+xYQ
iDt
thA
thA
@@ -171110,7 +173446,7 @@ oCU
vVH
vVH
vVH
-lDE
+ivw
nKL
hpF
pXZ
@@ -171157,19 +173493,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
@@ -171367,7 +173703,7 @@ bLc
diN
diN
lgK
-jqn
+vlH
lWb
eDq
tDY
@@ -171376,10 +173712,10 @@ izY
eND
qpB
qpB
-jLB
+eIU
qpB
qpB
-siv
+sfF
kRy
qpB
iwC
@@ -171414,19 +173750,19 @@ thA
thA
thA
thA
-dlu
-wvu
-wvu
-wvu
-bPR
-wvu
-wvu
-bil
+fyI
+eiH
+eiH
+eiH
+puZ
+eiH
+eiH
+sTb
iDt
iDt
-ayJ
+luI
iDt
-kJx
+hcZ
iDt
iDt
iDt
@@ -171434,15 +173770,15 @@ iDt
iDt
iDt
iDt
-rcY
+jai
iDt
iDt
iDt
iDt
iDt
iDt
-mJZ
-iDt
+jai
+wkB
iDt
iDt
iDt
@@ -171649,7 +173985,7 @@ cBT
dyf
iOs
gKQ
-eGW
+xAY
qQN
wMt
thA
@@ -171671,19 +174007,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
@@ -171692,13 +174028,13 @@ ijY
iDt
iDt
syw
-kNC
-kNC
-kNC
-tej
+aOG
+pJm
+pJm
+wWw
fSm
-kNC
-gIl
+aOG
+pCG
iDt
iDt
cCb
@@ -171870,7 +174206,7 @@ iDt
hPs
gBX
hPs
-bSX
+jhj
pzu
sRQ
una
@@ -171886,15 +174222,15 @@ nKL
hpF
uHv
nup
-vYc
+pCp
dAZ
-nek
+eRp
qKS
dUO
-rhP
+fWQ
kkB
dUO
-nGQ
+ylL
sSO
lyg
gjq
@@ -171906,8 +174242,8 @@ bqF
dyf
iNy
gKQ
-eGW
-qQN
+okz
+okz
wMt
thA
thA
@@ -171928,19 +174264,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
@@ -171950,8 +174286,8 @@ iDt
scw
scw
iDt
-rDN
-sEv
+fep
+edc
scw
scw
iDt
@@ -171959,7 +174295,7 @@ iDt
iDt
iDt
iDt
-jZN
+xYQ
xMq
thA
thA
@@ -172138,12 +174474,12 @@ pez
tVf
izn
lgK
-pfn
+wrw
lWb
eDq
iXh
lWb
-hRp
+upB
dAZ
wqI
xSn
@@ -172163,8 +174499,8 @@ seA
ybN
seA
gKQ
-jSL
-jSL
+jhi
+jhi
wMt
thA
thA
@@ -172185,17 +174521,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
@@ -172205,11 +174541,11 @@ scw
scw
scw
scw
-oJD
-oJD
+nKY
+nKY
scw
-sed
-nfG
+eFH
+ppY
scw
iDt
iDt
@@ -172400,7 +174736,7 @@ yiL
yiL
yiL
eDq
-pDl
+ejb
dAZ
emM
wob
@@ -172442,19 +174778,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
@@ -172462,9 +174798,9 @@ iDt
scw
scw
scw
-kYo
-oJD
-oJD
+dVN
+nKY
+nKY
scw
scw
aRt
@@ -172640,7 +174976,7 @@ xMq
iDt
iDt
ebd
-ktt
+hPs
gBX
hPs
cIc
@@ -172656,15 +174992,15 @@ uBs
uBs
uBs
xaH
-fCd
+erM
nDp
-ubo
+uFg
lgD
nDp
-gqZ
+mtS
vms
nDp
-dwS
+tlt
vms
iYU
nZd
@@ -172699,19 +175035,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
@@ -172719,11 +175055,11 @@ iDt
iDt
iDt
iDt
-kYo
-rIS
-kYo
-kYo
-kYo
+dVN
+yib
+dVN
+dVN
+dVN
iDt
scw
thA
@@ -172913,7 +175249,7 @@ xuA
tuc
pPK
yiL
-aVF
+gwl
rQZ
bSk
uQC
@@ -172922,18 +175258,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
@@ -172956,30 +175292,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
@@ -173170,7 +175506,7 @@ xuA
tuc
tuc
yiL
-pRB
+sBH
cGl
hgM
pJu
@@ -173182,14 +175518,14 @@ frS
fiL
hQt
lyg
-gjq
+fhL
gjq
gjq
wYP
tDN
-tpK
+bPl
dyf
-xCb
+bOh
gDe
gKQ
thA
@@ -173213,25 +175549,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
@@ -173411,8 +175747,8 @@ xMq
xMq
xMq
xMq
-kSw
-iDt
+fIt
+nbB
xhK
vVH
vVH
@@ -173424,7 +175760,7 @@ yiL
vDx
cxO
xuA
-dkB
+wkd
bYg
yiL
qLD
@@ -173444,9 +175780,9 @@ gjq
gjq
idN
ntT
-xUR
+mtq
jbI
-oQN
+bqS
xtn
gKQ
thA
@@ -173470,19 +175806,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
@@ -173684,8 +176020,8 @@ pgL
lab
cbz
yiL
-iVu
-rnb
+fnt
+fJZ
hgM
kyu
hBg
@@ -173701,9 +176037,9 @@ gjq
gjq
onJ
mvv
-ile
-oTe
-cAz
+bfV
+aUo
+rth
dEv
gKQ
thA
@@ -173727,21 +176063,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
@@ -173938,11 +176274,11 @@ yiL
agF
tgP
rGh
-vHM
+iJE
wyF
yiL
-szz
-nrq
+cVV
+dhi
hgM
kyu
nrF
@@ -174007,7 +176343,7 @@ thA
thA
thA
xMq
-nfG
+ppY
iDt
iDt
iDt
@@ -174182,8 +176518,8 @@ gjq
gjq
gjq
gjq
-kSw
-iDt
+fIt
+nbB
xhK
oAP
oua
@@ -174198,8 +176534,8 @@ yiL
yiL
yiL
yiL
-xHE
-xHE
+nEC
+lOr
hgM
fvO
mBa
@@ -174251,10 +176587,10 @@ iDt
iDt
iDt
iDt
-aaD
+vcj
wqT
-aaD
-iDt
+vcj
+mbJ
iDt
iDt
iDt
@@ -174447,11 +176783,11 @@ swf
vVH
uVC
oVY
-rwu
+tGJ
tVf
wRa
gAn
-hgH
+qNK
nmI
kZi
uME
@@ -174465,7 +176801,7 @@ xhK
xhK
xhK
xhK
-gjq
+paw
gjq
gjq
gjq
@@ -174509,7 +176845,7 @@ iDt
iDt
iDt
alW
-wVz
+dpw
alW
iDt
iDt
@@ -174702,13 +177038,13 @@ xhK
vVH
fkV
vVH
-kqn
+wEp
oVY
sMs
tVf
wJi
rME
-bol
+xvI
mMy
uME
uME
@@ -174766,11 +177102,11 @@ iDt
iDt
vcj
vcj
-tLc
+aDc
vcj
vcj
aVq
-daZ
+tla
iDt
xMq
thA
@@ -174965,7 +177301,7 @@ bWh
pac
hUz
hUz
-bjp
+tGA
bjp
poe
ryu
@@ -175030,7 +177366,7 @@ aVq
iDt
iDt
iDt
-nfG
+ppY
iDt
iDt
ebd
@@ -175213,7 +177549,7 @@ gjq
gjq
gjq
upw
-msg
+pcT
jDG
iRV
fiD
@@ -175231,7 +177567,7 @@ ihB
ddp
hBg
nzj
-dKr
+rjd
pOk
par
rsM
@@ -175538,10 +177874,10 @@ ijn
vWz
vWz
swq
-eNS
+vWz
vcj
-aaD
-qtS
+vcj
+dCq
iDt
iDt
iDt
@@ -175795,8 +178131,8 @@ sIO
wDG
vyg
dOq
-kOS
-uMq
+gLU
+wVz
nul
scw
scw
@@ -176051,11 +178387,11 @@ vcj
igL
vWz
vWz
-dOq
+bFx
vWz
vcj
-aaD
-xQu
+vcj
+tsc
iDt
xMq
thA
@@ -176064,7 +178400,7 @@ xMq
xMq
thA
xMq
-nfG
+ppY
iDt
iDt
iDt
@@ -176311,7 +178647,7 @@ iyd
vlZ
gCh
alW
-nfG
+ppY
iDt
xMq
xMq
@@ -176329,11 +178665,11 @@ iDt
iDt
iDt
iDt
-nfG
+ppY
iDt
iDt
iDt
-nfG
+ppY
xMq
thA
thA
@@ -176766,14 +179102,14 @@ wRa
wRa
wRa
vVH
-nRO
+tOE
ulz
ulz
ulz
pNm
-eOz
+cLp
fdG
-uCU
+saX
gjq
gjq
gjq
@@ -177023,7 +179359,7 @@ wRa
wRa
wRa
vVH
-nCQ
+kUt
pKR
ejX
fjG
@@ -177337,7 +179673,7 @@ scw
scw
scw
scw
-nfG
+ppY
iDt
iDt
thA
@@ -177355,8 +179691,8 @@ nxM
vmP
maQ
oAe
-aUD
-xMq
+nxM
+fCm
thA
thA
thA
@@ -177609,7 +179945,7 @@ thA
thA
thA
mep
-upa
+kVI
qck
lkz
mep
@@ -177848,14 +180184,14 @@ scw
scw
iDt
thA
-gqG
-thA
+psb
+lGf
thA
thA
-gqG
-scw
-gqG
-iDt
+psb
+mrk
+psb
+mbJ
thA
gjq
gjq
@@ -177866,9 +180202,9 @@ thA
thA
nxM
nxM
-qKH
+vmP
eVO
-aUR
+oAe
nxM
nxM
nxM
@@ -178087,7 +180423,7 @@ thA
thA
thA
thA
-rcY
+aKb
iDt
iDt
xMq
@@ -178100,7 +180436,7 @@ gjq
gjq
gjq
gjq
-nfG
+ppY
scw
thA
thA
@@ -178344,8 +180680,8 @@ thA
thA
thA
thA
-mJZ
-iDt
+bmc
+wkB
iDt
scw
scw
@@ -178391,7 +180727,7 @@ thA
thA
thA
thA
-nfG
+ppY
iDt
iDt
scw
@@ -178566,7 +180902,7 @@ ovP
ovP
ovP
gFX
-ovP
+iXc
ovP
ovP
ovP
@@ -178605,12 +180941,12 @@ chg
iDt
scw
scw
-xpO
-gNu
-gNu
-gNu
-gNu
-oZk
+bqq
+mgS
+mgS
+mgS
+mgS
+jRX
gjq
gjq
gjq
@@ -178822,7 +181158,7 @@ ovP
ovP
iDt
scw
-gbz
+scw
ovP
ovP
ovP
@@ -178858,17 +181194,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
@@ -178913,7 +181249,7 @@ iDt
bID
vxf
noX
-eNQ
+nKw
bID
iDt
thA
@@ -179115,17 +181451,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
@@ -179137,10 +181473,10 @@ bDO
xMq
xMq
iDt
-gqG
-scw
-gqG
-thA
+psb
+mrk
+psb
+lGf
thA
thA
thA
@@ -179163,13 +181499,13 @@ xMq
iDt
iDt
iDt
-nfG
+ppY
iDt
iDt
-nfG
+ppY
bID
bID
-dmR
+sSN
bID
bID
thA
@@ -179376,22 +181712,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
@@ -179633,20 +181969,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
@@ -179680,7 +182016,7 @@ iDt
cCb
iDt
iDt
-nfG
+ppY
bID
anZ
anZ
@@ -179887,24 +182223,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
@@ -180144,27 +182480,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
@@ -180400,16 +182736,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
@@ -180418,15 +182754,15 @@ exw
mPq
iDt
iDt
-xlp
+qau
scw
-fna
+wJy
iDt
iDt
iDt
iDt
eXH
-gGK
+jvU
bjU
aJr
vHZ
@@ -180658,32 +182994,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
@@ -180910,31 +183246,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
@@ -180953,7 +183289,7 @@ nRc
nRc
bCt
pHD
-djB
+tOb
hjM
oex
oex
@@ -181166,21 +183502,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
@@ -181189,7 +183525,7 @@ iDt
scw
scw
oZd
-kso
+qhR
scw
iDt
iDt
@@ -181423,29 +183759,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
@@ -181454,7 +183790,7 @@ scw
iDt
iDt
eXH
-nlN
+iIY
nlS
yco
rVd
@@ -181680,22 +184016,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
@@ -181730,7 +184066,7 @@ xmx
wEU
rwD
nxM
-dXF
+xnK
pNZ
rQG
jJV
@@ -181937,22 +184273,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
@@ -181964,11 +184300,11 @@ scw
btU
xUf
syW
-jmJ
+sCz
hVX
xUf
eXH
-irO
+uIJ
wiv
fBw
mLt
@@ -181976,10 +184312,10 @@ mLt
eKW
wsu
wsu
-wsu
-wsu
-wsu
-wsu
+xfv
+urp
+urp
+bFW
pHD
sGk
hjM
@@ -181987,7 +184323,7 @@ aJw
sBJ
qpD
nxM
-qhp
+feD
nxM
nxM
pBW
@@ -182195,23 +184531,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
@@ -182219,7 +184555,7 @@ iDt
iDt
iDt
ioK
-vtW
+tqy
bja
jvw
jvw
@@ -182233,10 +184569,10 @@ qcL
plS
pHD
pHD
-eUe
-bCq
-bCq
-fPh
+hNq
+vIu
+vIu
+kSG
pHD
jKG
hjM
@@ -182450,24 +184786,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
@@ -182476,11 +184812,11 @@ iDt
scw
iDt
ioK
-jEA
+jDz
bja
-rlA
+czj
jvw
-bja
+gIJ
kRH
xqY
nzK
@@ -182490,10 +184826,10 @@ fmr
plS
pHD
pHD
-qMz
-imV
-fuS
-plS
+hNq
+qpo
+qpo
+kSG
pHD
qMz
hjM
@@ -182504,7 +184840,7 @@ nxM
nxM
nxM
nxM
-mPO
+aRn
hjM
rgE
rgE
@@ -182707,25 +185043,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
@@ -182735,7 +185071,7 @@ scw
btU
btU
btU
-qbG
+aoP
ako
hjM
hjM
@@ -182747,10 +185083,10 @@ hjM
hCC
iXP
pHD
-woC
+bSi
eXH
eXH
-ida
+qYF
pHD
qMz
hjM
@@ -182951,7 +185287,7 @@ tjo
tjo
tjo
tjo
-luR
+riW
iDt
tjo
thA
@@ -182964,35 +185300,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
@@ -183020,7 +185356,7 @@ nxM
nxM
nJd
hjM
-qII
+iYd
tVA
oiO
rgE
@@ -183208,7 +185544,7 @@ tjo
tjo
tjo
tjo
-nlA
+vne
iDt
tjo
thA
@@ -183222,23 +185558,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
@@ -183246,11 +185582,11 @@ iDt
iDt
iDt
btU
-btU
-sGf
-lca
-uTf
-dYr
+gCV
+gcU
+svx
+tNw
+mdy
nxM
nxM
nxM
@@ -183258,9 +185594,9 @@ hjM
hjM
hjM
hjM
-dsT
+oEy
vaZ
-ubI
+bQx
hOk
hjM
hjM
@@ -183278,7 +185614,7 @@ mco
upa
hjM
fjg
-bif
+rxx
nCD
rgE
rgE
@@ -183476,35 +185812,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
@@ -183543,7 +185879,7 @@ phS
kpG
uAi
qST
-iRP
+ngb
wrE
lKt
rgE
@@ -183733,39 +186069,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
@@ -183788,7 +186124,7 @@ scw
ilN
vIZ
nxM
-bPk
+iXK
kmM
sYU
iio
@@ -183979,7 +186315,7 @@ iDt
iDt
iDt
iDt
-pOl
+evh
tjo
tjo
tjo
@@ -183990,36 +186326,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
@@ -184234,9 +186570,9 @@ iDt
tjo
iDt
iDt
-pOl
+evh
iDt
-edM
+sNF
tjo
tjo
tjo
@@ -184248,37 +186584,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
@@ -184485,7 +186821,7 @@ tjo
tjo
tjo
tjo
-pOl
+evh
iDt
tjo
tjo
@@ -184505,47 +186841,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
@@ -184762,37 +187098,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
@@ -184832,7 +187168,7 @@ foW
ljL
ljL
agY
-bnG
+lub
lub
wbk
ccg
@@ -185007,7 +187343,7 @@ iDt
iDt
iDt
iDt
-pOl
+evh
tjo
tjo
tjo
@@ -185019,48 +187355,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
@@ -185077,9 +187413,9 @@ lyX
iTB
imH
nxM
-mTX
+aXP
hjM
-qUe
+qJi
ljL
fFn
vmu
@@ -185278,7 +187614,7 @@ jre
jre
jre
jre
-iRS
+uTu
jre
jre
jre
@@ -185286,29 +187622,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
@@ -185322,7 +187658,7 @@ ffQ
xDb
clI
iDt
-pco
+tJl
iDt
xMq
xMq
@@ -185532,40 +187868,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
@@ -185579,8 +187915,8 @@ hoM
xDb
xMq
iDt
-mJZ
-frt
+aKb
+gnX
iDt
iDt
xMq
@@ -185788,41 +188124,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
@@ -185831,7 +188167,7 @@ drR
oQY
oQY
soA
-pNy
+dvK
nid
xDb
xMq
@@ -185849,8 +188185,8 @@ sqW
gjq
nxM
ueD
-aUD
-eJf
+nxM
+qOx
upH
fTG
hkp
@@ -185868,7 +188204,7 @@ bWK
bWK
neu
hjR
-vNM
+uEf
iDt
iDt
iDt
@@ -186045,41 +188381,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
@@ -186098,8 +188434,8 @@ iDt
iDt
scw
iDt
-gqG
-eJf
+psb
+pFv
eJf
eJf
eJf
@@ -186293,7 +188629,7 @@ tjo
tjo
tjo
iDt
-pOl
+evh
iDt
iDt
thA
@@ -186302,36 +188638,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
@@ -186339,7 +188675,7 @@ xDb
xDb
xDb
xDb
-jCA
+gff
nLe
nQd
oeT
@@ -186364,9 +188700,9 @@ myZ
myZ
myZ
myZ
-gdg
+wvF
kpC
-eMU
+cmY
vgM
syn
fDe
@@ -186560,47 +188896,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
@@ -186624,9 +188960,9 @@ eJf
eJf
upH
uuw
-jDi
-nzT
-eGl
+boc
+eOB
+bpw
lVw
dDy
nOS
@@ -186641,7 +188977,7 @@ rbY
ffe
alM
alM
-sbZ
+wtM
alM
iDt
thA
@@ -186820,37 +189156,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
@@ -186869,8 +189205,8 @@ thA
thA
thA
thA
-gqG
-eJf
+psb
+pFv
eJf
eJf
eJf
@@ -186878,12 +189214,12 @@ eJf
myZ
eJf
eJf
-buW
+eJf
kpC
-kDb
-nqX
-qoZ
-sIA
+gWn
+vZo
+wxl
+lOa
lVw
jPu
ffe
@@ -186895,10 +189231,10 @@ ffe
ffe
ffe
ffe
-heH
-gNh
+ffe
+oxO
alM
-noQ
+vZM
alM
iDt
thA
@@ -187076,38 +189412,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
@@ -187128,19 +189464,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
@@ -187152,10 +189488,10 @@ oxO
alM
fWO
alM
-jrk
+aUT
oxO
alM
-iCD
+ouU
alM
alM
alM
@@ -187334,20 +189670,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
@@ -187356,13 +189692,13 @@ jre
fuH
fuH
btU
-vrr
-rcU
-gEX
-eML
+mCd
+hkQ
+cZk
+tHJ
xDb
jUB
-aVU
+dgt
jUB
xDb
xDb
@@ -187371,7 +189707,7 @@ qWD
oQY
nvX
jUB
-rOH
+pkz
lPC
vpX
xDb
@@ -187392,12 +189728,12 @@ wCo
oxO
wCo
eJf
-nfG
+ppY
upH
cYi
-qqh
+ngo
naX
-sIA
+ulm
rtt
rgB
ffe
@@ -187591,38 +189927,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
@@ -187848,23 +190184,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
@@ -187875,10 +190211,10 @@ thA
thA
thA
xDb
-xtR
+lfA
ukz
gPR
-bwe
+tFY
cxQ
vJB
wgI
@@ -187903,7 +190239,7 @@ xMq
xMq
xMq
alM
-xFU
+ciU
alM
apB
ffe
@@ -188104,7 +190440,7 @@ thA
iDt
rcY
scw
-uNG
+ayL
aIB
tiY
xMq
@@ -188121,7 +190457,7 @@ hMw
jre
xMq
jre
-dla
+sjd
jre
iDt
thA
@@ -188132,11 +190468,11 @@ thA
thA
thA
xDb
-pPD
+fBy
tIu
toG
jUB
-kax
+aov
anK
nrC
xDb
@@ -188146,7 +190482,7 @@ ffe
ffe
ffe
dOC
-dFD
+nIb
alM
alM
alM
@@ -188360,7 +190696,7 @@ iDt
iDt
iDt
rcY
-luR
+riW
scw
scw
iDt
@@ -188380,7 +190716,7 @@ xMq
tiY
aIB
dhH
-grg
+xvE
iDt
thA
thA
@@ -188397,7 +190733,7 @@ xDb
hjV
ezu
xDb
-slx
+sEN
ffe
oxO
dcd
@@ -188416,12 +190752,12 @@ alM
alM
alM
alM
-mLo
+yhn
eEY
oxO
dcd
ffe
-wRO
+tBq
ffe
ffe
ffe
@@ -188616,8 +190952,8 @@ iDt
iDt
iDt
iDt
-tHF
-scw
+kLd
+nLB
iDt
scw
iDt
@@ -188650,10 +190986,10 @@ xMq
xMq
xMq
xMq
-ozM
+fWw
nKl
cgR
-tBW
+sWO
vRY
ffe
oxO
@@ -188669,7 +191005,7 @@ oxO
oxO
iry
jQi
-oxO
+jVa
oxO
oxO
oxO
@@ -188679,7 +191015,7 @@ rUS
tRd
tRd
nPI
-wjy
+nPI
nPI
nPI
nPI
@@ -188881,9 +191217,9 @@ scw
iDt
cCb
syw
-kNC
-kNC
-gIl
+pJm
+pJm
+pCG
iDt
thA
thA
@@ -188927,7 +191263,7 @@ nsp
oxO
oxO
oxO
-kOO
+oxO
oxO
oxO
oxO
@@ -189396,7 +191732,7 @@ iDt
iDt
iDt
iDt
-pOl
+evh
iDt
iDt
iDt
@@ -189431,12 +191767,12 @@ xMq
alM
oxO
ffe
-qvN
-qvN
-qvN
-biI
-qvN
-qvN
+qCu
+qCu
+qCu
+oED
+qCu
+qCu
qLY
eGN
lZX
@@ -189688,34 +192024,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
@@ -189905,9 +192241,9 @@ rcY
iDt
scw
iDt
-jmo
+xkW
keA
-vQz
+lPl
iDt
iDt
scw
@@ -189921,9 +192257,9 @@ thA
thA
thA
psb
-sRp
+jkX
gUQ
-sRp
+jkX
psb
thA
thA
@@ -189940,17 +192276,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
@@ -190163,7 +192499,7 @@ iDt
iDt
iDt
tBs
-dGZ
+vcf
tBs
iDt
iDt
@@ -190204,32 +192540,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
@@ -190423,15 +192759,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
@@ -190467,7 +192803,7 @@ cZT
cZT
pXj
qLY
-wZv
+hRQ
axD
qLY
hEW
@@ -190677,7 +193013,7 @@ tBs
tBs
tBs
tBs
-rHR
+rQh
tBs
tBs
tBs
@@ -190688,7 +193024,7 @@ rbZ
rbZ
pgo
iDt
-hNF
+aDG
iDt
iDt
iDt
@@ -190716,7 +193052,7 @@ iDt
alM
jCr
ffe
-nAf
+fMZ
pMF
mqe
hRC
@@ -190724,24 +193060,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
@@ -190929,7 +193265,7 @@ xMq
tBs
pwv
sAu
-rqn
+dGS
tBs
nHQ
oik
@@ -190945,8 +193281,8 @@ tuk
ebB
efM
pgo
-rcY
-rSQ
+jai
+rsG
scw
iDt
iDt
@@ -190980,7 +193316,7 @@ dtU
niy
gtF
ouP
-gLS
+qLY
cyh
cXX
bKI
@@ -191195,7 +193531,7 @@ baR
kAn
kMN
tBs
-mFR
+ebB
ebB
ebB
uXk
@@ -191243,21 +193579,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
@@ -191459,12 +193795,12 @@ efM
uXk
efM
awy
-rcY
-iDt
+jai
+wkB
iDt
-svz
+var
keA
-ddv
+sys
iDt
iDt
iDt
@@ -191487,12 +193823,12 @@ iDt
alM
oxO
ffe
-oqd
+jiB
vHq
aZk
-xNa
+iwQ
pMF
-rdl
+cBv
iQM
qLY
abe
@@ -191716,19 +194052,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
@@ -191747,31 +194083,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
@@ -191977,7 +194313,7 @@ wrX
xMq
xMq
wrX
-qCJ
+csJ
wrX
xMq
xMq
@@ -192002,10 +194338,10 @@ alM
oxO
ffe
ffe
-iwx
+mZI
ffe
ffe
-xwd
+pVj
qLY
vgf
qLY
@@ -192234,7 +194570,7 @@ wrX
wrX
wrX
wrX
-pSP
+vIm
wrX
wrX
xMq
@@ -192258,7 +194594,7 @@ alM
wOH
oxO
oxO
-ggS
+oxO
nyJ
nSK
ffe
@@ -192471,8 +194807,8 @@ thA
tBs
tix
tBs
-wgu
-dlB
+aCJ
+pyn
jCL
qEJ
qEJ
@@ -192480,16 +194816,16 @@ djD
qEJ
qEJ
qEJ
-tJi
+kyf
wBA
oTA
rpK
oTA
epB
-oTA
+uFt
wrX
wrX
-seN
+wBs
nBe
tiV
mjQ
@@ -192734,20 +195070,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
@@ -192762,17 +195098,17 @@ thA
thA
xMq
xMq
-kNC
-kNC
-ebX
+pJm
+pJm
+tSj
iDt
iDt
-nfG
+ppY
alM
alM
alM
alM
-aDe
+moy
tNJ
tNJ
nyJ
@@ -192982,7 +195318,7 @@ thA
thA
tBs
liS
-pxg
+saR
fdN
tBs
deP
@@ -192991,19 +195327,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
@@ -193021,16 +195357,16 @@ xMq
iDt
iDt
iDt
-qZG
-ebX
+gsd
+xvp
scw
iDt
lRI
eNh
oxO
-bEh
+uwR
vAx
-jXl
+oxO
oxO
pvh
oLa
@@ -193239,28 +195575,28 @@ thA
xMq
tBs
suA
-roq
+iWA
rHZ
tBs
dit
bDH
rYt
-rrf
+nBS
wAv
jvs
qEJ
qEJ
-oxN
+vnW
mHJ
oTA
oTA
syh
oTA
lqj
-oTA
+erV
uJt
uJt
-rcD
+iJV
smC
oTM
wrX
@@ -193276,28 +195612,28 @@ xMq
xMq
iDt
iDt
-xte
+rkp
iDt
iDt
-chg
+qpH
iDt
-nfG
+ppY
alM
-bXf
+dQl
ffe
ffe
ffe
ffe
-ylQ
+pQl
ffe
iry
-oxO
+jXl
oxO
iKG
-cma
-qUL
-oxO
iry
+qUL
+cma
+sGL
alM
alM
alM
@@ -193519,7 +195855,7 @@ uJt
uJt
uJt
smC
-gyf
+dIG
wrX
xMq
xMq
@@ -193533,19 +195869,19 @@ xMq
lvt
lvt
lvt
-kdJ
-iDt
-iDt
-wnp
-wnp
-wnp
-wnp
-wnp
-wnp
-eLU
-wAk
-lPz
-rOz
+rlq
+iDt
+iDt
+uwT
+uwT
+uwT
+uwT
+uwT
+uwT
+loO
+gaF
+qkg
+wQx
ffe
ffe
ffe
@@ -193758,10 +196094,10 @@ mku
tBs
tBs
tBs
-fCw
+vch
wrX
-hzd
-sdk
+aMA
+nbG
aIe
wBA
uJq
@@ -193790,19 +196126,19 @@ xMq
lvt
lvt
lvt
-kdJ
+rlq
lvt
-wnp
-wnp
-sjD
-dsa
-wnp
-aLo
-jDQ
-oQV
-xvx
-rOz
-xvx
+uwT
+uwT
+qMk
+crW
+uwT
+kgw
+tjf
+raQ
+qTf
+wQx
+qTf
kAH
mHu
kwM
@@ -193811,7 +196147,7 @@ qRO
fgx
cAB
wQi
-wQi
+qlf
uIf
thA
thA
@@ -194017,10 +196353,10 @@ tWc
tBs
kCx
wrX
-umF
-kmn
+aMA
+nbG
aIe
-lHB
+lmT
dzy
ewC
iLt
@@ -194047,28 +196383,28 @@ lvt
lvt
lvt
lvt
-mRp
-qbz
-wnp
-uNH
-kXR
-jVi
-xij
-vES
-xnC
-tLy
-jih
-gYO
-toP
+rjb
+efR
+uwT
+dWL
+fbA
+lct
+oGj
+rWm
+jWq
+lvR
+ddm
+qvx
+aZJ
kAH
mHu
jlj
tUo
-aQn
+cvj
hFb
vqv
wQi
-wQi
+tEs
uIf
thA
thA
@@ -194274,21 +196610,21 @@ pmn
tBs
tBs
tBs
-hrK
-icv
wrX
wrX
-fIn
+wrX
+wrX
+wyL
jcP
oTA
oTA
epB
oTA
uko
-oTA
+mEI
uJt
uJt
-rcD
+tWJ
oTA
wQC
wrX
@@ -194303,25 +196639,25 @@ rcY
lvt
lvt
lvt
-nNV
-ege
-iPK
-wnp
-afy
-sqB
-eSQ
-xjs
-vES
-uIf
-uIf
-uIf
-uIf
-uIf
+jyy
+oyM
+lGb
+uwT
+hkS
+waz
+jRt
+rWm
+rWm
+uwT
+qTf
+wiX
+qTf
+qTf
uIf
-laa
+pHW
qKt
tUo
-aQn
+cvj
hFb
vqv
qiN
@@ -194531,21 +196867,21 @@ wMj
lpL
wMj
tBs
-lry
-oTA
-hlS
+etH
+etH
+rBJ
wrX
-uDC
+wIC
wBA
oTA
bAF
irQ
bAF
bYm
-bMe
+rlt
uJt
uJt
-oTA
+bap
oTA
tIw
wrX
@@ -194560,25 +196896,25 @@ rcY
lvt
lvt
lvt
-ekN
-nce
-qcl
-qcl
-qcl
-vES
-mwK
-vES
-ybe
+opE
+ssj
+sDB
+sDB
+sDB
+rWm
+cZf
+rWm
+tKY
+uIf
+uIf
+uIf
+uIf
+uIf
uIf
-nIt
-nIt
-nIt
-nIt
-inh
mWj
aNu
tPG
-xEQ
+baN
qaL
vqv
brt
@@ -194788,21 +197124,21 @@ tBs
aVi
vGJ
tBs
+cMG
etH
-etH
-eyU
-wrX
-uJI
+oTA
+lBN
+qOu
xBt
iih
sab
nMP
sab
qYh
-oTA
-avo
-tTw
-qfj
+rkz
+peX
+peX
+bEn
vnj
wrX
wrX
@@ -194817,29 +197153,29 @@ rcY
lvt
lvt
lvt
-mnB
-tTK
-rSZ
-vES
-uPQ
-vES
-eSQ
-nOo
-xdk
-onV
-stb
-stb
-stb
-stb
-iWs
-mxc
+ctm
+iln
+xPs
+rWm
+kZe
+rWm
+tkX
+eLs
+xNR
+hqH
+vAS
+igM
+ssH
+xyI
+oRH
+wzU
qRO
-rEj
+wuh
qRO
mEL
vqv
fkN
-fkN
+gge
uIf
thA
thA
@@ -195047,7 +197383,7 @@ aOz
tBs
cPq
etH
-etH
+qUf
wrX
wrX
ffp
@@ -195056,11 +197392,11 @@ oTA
syh
oTA
syh
-oTA
+hAE
wrX
wrX
-hfm
-orU
+dgA
+mKh
wrX
xMq
xMq
@@ -195075,24 +197411,24 @@ lvt
lvt
lvt
lvt
-asG
-qcl
-qcl
-wnp
-gAZ
-tEE
-lYS
-jem
+kWk
+sDB
+sDB
+sDB
+nPo
+rCs
+kwn
+teQ
uIf
-rmp
+qsa
pOL
pOL
pOL
-opD
-jGR
+gOA
+mBY
hFb
mzb
-rEj
+wuh
rRl
vqv
wZV
@@ -195303,7 +197639,7 @@ goB
goB
tBs
wrX
-wrX
+ipg
wrX
wrX
wrX
@@ -195327,26 +197663,26 @@ thA
thA
tjo
tjo
-qZG
-ebX
+gsd
+hxJ
lvt
lvt
lvt
-kdJ
+rlq
lvt
lvt
-wnp
-wnp
-dqt
-woV
-xxZ
+uwT
+uwT
+bvw
+oDw
+gyO
uIf
-jcC
-pOL
-pOL
-pOL
-opD
-jGR
+xmM
+bWH
+bWH
+bWH
+kdg
+xeF
hFb
hFb
qRO
@@ -195560,15 +197896,15 @@ lvt
lvt
lvt
lvt
-lvt
+scw
lvt
wrX
wrX
wrX
wrX
-daj
+nfS
wrX
-crg
+eoS
wrX
wrX
wrX
@@ -195585,32 +197921,32 @@ thA
tjo
tjo
tjo
-qZG
-kNC
-ebX
+syw
+wWw
+hxJ
lvt
-kdJ
+rlq
lvt
lvt
lvt
-wnp
-qcl
-qcl
-wnp
+uwT
+sDB
+sDB
+uwT
uIf
-odm
-odm
-odm
-odm
-nqy
-jGR
+rNK
+oPt
+oPt
+oPt
+tcX
+xeF
qRO
qRO
qRO
rRl
ndb
bnZ
-ulE
+eSq
uIf
thA
thA
@@ -195823,9 +198159,9 @@ lvt
xMq
xMq
wrX
-vle
+wee
bWp
-nJZ
+mCP
wrX
xMq
xMq
@@ -195844,27 +198180,27 @@ tjo
tjo
tjo
tjo
-qZG
-kNC
-nmy
-kNC
-kNC
-kNC
-uMU
+gsd
+pJm
+dUm
+pJm
+wWw
+pJm
+gsd
iDt
-rQs
-kNC
-fcj
-fcj
-fcj
-fcj
-roW
-roW
-bId
-gcy
-jJG
-jJG
-plX
+ctC
+pJm
+opP
+opP
+opP
+opP
+lpy
+lpy
+tqJ
+bpY
+vfj
+vfj
+kJF
qZN
akk
qZN
@@ -196110,14 +198446,14 @@ thA
thA
thA
rcY
-iDt
-fCS
-iwq
-cuB
-iCe
-lgP
-iCe
-vcH
+lvt
+vEc
+taC
+duY
+vgK
+rGf
+vgK
+oBq
gnq
xEF
qSk
@@ -196366,14 +198702,14 @@ thA
thA
thA
thA
-rcY
-iDt
-fCS
-ocd
-bqX
-rmG
-ryX
-sqH
+kLd
+lLA
+vEc
+oPu
+uTx
+ejN
+xVB
+nMv
qSk
sbd
rEh
@@ -196623,15 +198959,15 @@ thA
thA
thA
thA
-rcY
-iDt
-fCS
-iwq
-evc
-wKh
-aEK
-wKh
-odf
+aDG
+lvt
+vEc
+taC
+sGT
+qNt
+dwj
+qNt
+uVf
sbd
jaY
rhY
@@ -196881,7 +199217,7 @@ thA
thA
thA
syw
-kNC
+pJm
bgx
bgx
bgx
@@ -197137,16 +199473,16 @@ thA
thA
thA
thA
+iDt
+iDt
vzD
+uAJ
vzD
-vzD
-jdd
-sHV
-rTs
-rEU
+eYY
+aUu
oHo
-gOq
-bBb
+eVw
+rEU
vzD
thA
thA
@@ -197395,15 +199731,15 @@ thA
thA
thA
vzD
-yap
-qXY
-jCl
-jCl
-jCl
-jCl
-jCl
+vzD
+vzD
jCl
-iVY
+mAn
+beu
+uZc
+vzD
+vzD
+vzD
vzD
thA
thA
@@ -197652,15 +199988,15 @@ thA
thA
thA
vzD
-yap
-jCl
-bFq
+xLv
+gvr
+uZc
+vzD
+rEU
+uZc
axu
-dVq
-xEt
-jCl
-jCl
-iVY
+rRN
+xLv
vzD
thA
thA
@@ -197909,15 +200245,15 @@ thA
thA
thA
vzD
+jCl
+fXQ
vzD
vzD
+fXX
vzD
vzD
-vzD
-vzD
-vzD
-vzD
-vzD
+rRN
+jCl
vzD
thA
thA
@@ -198165,17 +200501,17 @@ thA
thA
thA
thA
-thA
-thA
-thA
-thA
-thA
-thA
-thA
-thA
-thA
-thA
-thA
+vzD
+puL
+phA
+vzD
+kfS
+xYg
+ibj
+vzD
+nQL
+eYx
+vzD
thA
thA
thA
@@ -198422,17 +200758,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
@@ -198679,17 +201015,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
@@ -218597,7 +220933,7 @@ wNO
wNO
wNO
wNO
-aaX
+qzn
vbG
hHG
hHG
@@ -218854,7 +221190,7 @@ wNO
wNO
wNO
wNO
-fhB
+liV
vbG
hHG
hHG
@@ -219113,8 +221449,8 @@ wNO
bln
bln
bln
-xDQ
-xDQ
+wDS
+wDS
bln
wNO
wNO
@@ -219199,11 +221535,11 @@ wNO
wNO
wNO
bln
-gnZ
+oEB
bln
hcw
lSu
-gnZ
+oEB
bln
wNO
wNO
@@ -219215,11 +221551,11 @@ wNO
wNO
wNO
bln
-gnZ
+oEB
lSu
weW
bln
-gnZ
+oEB
bln
bln
bln
@@ -219370,8 +221706,8 @@ wNO
bln
bln
bln
-rPp
-rPp
+dTI
+dTI
bln
wNO
wNO
@@ -219713,11 +222049,11 @@ wNO
bln
bln
lSu
-eqn
+bln
sEB
sEB
sEB
-sjU
+lSu
bln
lSu
bln
@@ -219729,11 +222065,11 @@ lSu
bln
lSu
bln
-eqn
+bln
sEB
sEB
sEB
-sjU
+lSu
bln
mQb
bln
@@ -220233,7 +222569,7 @@ tqR
sEB
fUR
lSu
-gnZ
+oEB
jNZ
sEB
sEB
@@ -220241,7 +222577,7 @@ sEB
sEB
sEB
rzO
-gnZ
+oEB
lSu
fUR
sEB
@@ -220740,7 +223076,7 @@ bln
uer
bln
bln
-umb
+bln
fUR
mXT
cJt
@@ -220756,14 +223092,14 @@ sEB
sEB
qVo
lSu
-umb
+bln
fUR
mXT
cJt
iMu
fUR
oqJ
-iWb
+bln
lSu
lSu
bln
@@ -220771,7 +223107,7 @@ bln
bln
bln
bln
-gnZ
+oEB
bln
bln
bln
@@ -220783,7 +223119,7 @@ aBR
aBR
aBR
aBR
-gnZ
+oEB
aBR
aBR
aBR
@@ -221012,7 +223348,7 @@ sEB
sEB
sEB
sEB
-ntx
+rhJ
lSu
fUR
fUR
@@ -221034,7 +223370,7 @@ bln
bln
bln
lSu
-gnZ
+oEB
aBR
aBR
aBR
@@ -221252,13 +223588,13 @@ bln
bln
bln
bln
-gnZ
+oEB
lSu
-fBN
+xOk
fUR
-irX
+kod
kyg
-rwW
+uhx
uhx
uhx
uhx
@@ -221272,15 +223608,15 @@ sEB
uhx
uhx
uhx
-rwW
+uhx
jHX
-fJd
+tLm
fUR
lSu
fUR
kod
gFL
-rwW
+uhx
uhx
uhx
uhx
@@ -221508,7 +223844,7 @@ bln
lBD
bln
lSu
-hjU
+jNZ
kKU
kKU
rzO
@@ -221772,7 +224108,7 @@ fUR
fUR
ykb
wOy
-fHb
+uhx
uhx
uhx
uhx
@@ -221786,7 +224122,7 @@ sEB
uhx
uhx
uhx
-fHb
+uhx
bzg
otG
uhx
@@ -221794,7 +224130,7 @@ lSu
uhx
ykb
wOy
-fHb
+uhx
uhx
uhx
uhx
@@ -222023,16 +224359,16 @@ bln
bln
miY
fUR
-fNy
+eYK
xAk
-txd
+xaf
fUR
uRx
jdY
rsw
rin
uhx
-caX
+rcS
sEB
sEB
sEB
@@ -222042,7 +224378,7 @@ sEB
sEB
oMa
uhx
-tbR
+pgt
dcG
jXm
otG
@@ -222054,7 +224390,7 @@ jdY
rsw
phu
uhx
-dsg
+jls
bln
lSu
bln
@@ -222535,10 +224871,10 @@ bln
bln
fsm
bln
-tIc
+miY
fUR
fUR
-mXH
+kVA
wWS
mVE
nDJ
@@ -222582,7 +224918,7 @@ bln
bln
bln
bln
-gnZ
+oEB
aBR
aBR
aBR
@@ -222803,7 +225139,7 @@ fld
ycA
lpH
uhx
-oJH
+vCm
sEB
sEB
sEB
@@ -222813,7 +225149,7 @@ sEB
sEB
fiv
uhx
-jDS
+sjz
lKc
uMm
dvO
@@ -222825,7 +225161,7 @@ fld
ycA
lpH
uhx
-hgx
+pSK
bln
lSu
bln
@@ -223049,15 +225385,15 @@ bln
bln
bln
bln
-hWW
+miY
ydI
ydI
-qKJ
+nWM
kHl
mVE
nDJ
wOy
-rwW
+uhx
uhx
uhx
uhx
@@ -223071,7 +225407,7 @@ sEB
uhx
uhx
uhx
-fHb
+uhx
bzg
dvO
uhx
@@ -223079,7 +225415,7 @@ lSu
uhx
ovm
wOy
-fHb
+uhx
uhx
uhx
uhx
@@ -223301,9 +225637,9 @@ bln
bln
lBD
bln
+lSu
bln
-bln
-hjU
+jNZ
kKU
kKU
sEB
@@ -223565,13 +225901,13 @@ hEI
hEI
biY
biY
-kCY
+rkk
bLs
xRI
ydI
ior
wOy
-fHb
+uhx
uhx
uhx
uhx
@@ -223585,7 +225921,7 @@ sEB
uhx
uhx
uhx
-rwW
+uhx
bzg
oVX
fUR
@@ -223593,7 +225929,7 @@ lSu
fUR
tvm
wOy
-rwW
+uhx
uhx
uhx
uhx
@@ -223814,11 +226150,11 @@ bln
bln
bln
bln
-bln
+lSu
stJ
bln
lJO
-cyV
+dxI
muv
qVN
biY
@@ -223839,8 +226175,8 @@ prs
sEB
sEB
sEB
-pJb
-waT
+fiv
+lSu
fUR
fUR
bAo
@@ -224075,17 +226411,17 @@ bln
bln
lJO
lJO
-jEB
+ldJ
nOx
cwe
dIx
laB
laB
lJO
-iku
+lXA
nDJ
wOy
-jBK
+pGy
fUR
rzO
lSu
@@ -224112,19 +226448,19 @@ fUR
bln
uer
bln
-gnZ
+oEB
lSu
bln
bln
bln
lSu
-gnZ
+oEB
bln
bln
bln
bln
bln
-gnZ
+oEB
aBR
aBR
aBR
@@ -224367,7 +226703,7 @@ wOy
eyk
fUR
bln
-iWb
+bln
bln
bln
bln
@@ -224589,43 +226925,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
@@ -224841,7 +227177,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
bln
lJO
@@ -224853,24 +227189,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
@@ -224878,9 +227214,9 @@ lGL
bXx
oMq
tEc
-uUu
-sEg
-iVi
+iGd
+mKJ
+vKD
tKI
tKI
tKI
@@ -225110,11 +227446,11 @@ ndz
hjI
xmo
vmx
-uBL
+eTe
nvI
nvI
oTc
-cQa
+nvI
nvI
fwM
fsv
@@ -225126,17 +227462,17 @@ xFs
fsv
dpU
swK
-iCw
+swK
ubx
swK
swK
swK
wfF
-rUv
+swK
nqD
thX
peM
-iES
+ddd
mKa
ldw
bCQ
@@ -225385,12 +227721,12 @@ jLM
fUR
fUR
fUR
-koQ
-koQ
+ort
+ort
fUR
fUR
fUR
-krW
+mYA
nEA
nwT
nwT
@@ -225399,7 +227735,7 @@ nwT
tKI
pgE
tKI
-iWb
+bln
lBD
bln
mQb
@@ -225443,11 +227779,11 @@ bln
bln
bln
bln
-bln
-bln
-bln
-bln
-bln
+wNO
+wNO
+wNO
+wNO
+wNO
wNO
wNO
wNO
@@ -225612,8 +227948,8 @@ bln
bln
stJ
bln
-bln
-bln
+lSu
+lSu
cyH
hjI
nbj
@@ -225650,14 +227986,14 @@ fUR
teE
bKA
nwT
-hAo
+wvJ
tzM
-vgj
+aUM
tKI
bCQ
tKI
tKI
-bln
+tMa
mQb
bln
bln
@@ -225704,7 +228040,7 @@ bln
bln
bln
bln
-bln
+wNO
wNO
wNO
wNO
@@ -225869,7 +228205,7 @@ lBD
bln
bln
uer
-bln
+lSu
bln
lJO
lJO
@@ -225947,12 +228283,12 @@ aBR
bln
bln
bln
+mQb
bln
bln
bln
-bln
-bln
-bln
+lSu
+lSu
bln
bln
bln
@@ -226147,7 +228483,7 @@ rMu
kHP
cuc
mVE
-nAH
+ich
nAH
nAH
mVE
@@ -226155,13 +228491,13 @@ xFs
jLM
qHO
fUR
-juu
+nyT
kBU
xgX
juu
gNL
fUR
-qAB
+usU
cTh
iJl
ooa
@@ -226202,17 +228538,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
@@ -226367,6 +228703,9 @@ bln
bln
bln
bln
+lSu
+mQb
+mQb
bln
bln
bln
@@ -226374,15 +228713,12 @@ bln
bln
bln
bln
+mQb
+mQb
bln
bln
bln
-bln
-bln
-bln
-bln
-bln
-bln
+lSu
bln
lJO
cKB
@@ -226460,18 +228796,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
@@ -226620,27 +228956,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
@@ -226669,11 +229005,11 @@ xFs
jLM
iYy
tma
-agG
+juu
mxQ
pXU
-pSd
-jsh
+kSA
+vUI
fUR
tkc
nsr
@@ -226715,21 +229051,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
@@ -226876,8 +229212,8 @@ bln
bln
bln
bln
-bln
-tCr
+mQb
+fPc
bln
bln
bln
@@ -226886,20 +229222,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
@@ -226918,7 +229254,7 @@ lvW
uTI
cuc
mVE
-nAH
+ich
nAH
nAH
mVE
@@ -226935,14 +229271,14 @@ nwT
goI
nwT
nwT
-aLO
+fZK
wRM
iox
tKI
bCQ
tKI
tKI
-bln
+tMa
stJ
fsm
bln
@@ -226970,24 +229306,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
@@ -227133,8 +229469,8 @@ bln
bln
bln
bln
-bln
-tCr
+mQb
+fPc
bln
uei
tmR
@@ -227143,16 +229479,16 @@ bln
uei
tmR
uei
-bln
+mQb
uei
tmR
uei
bln
-tCr
-bln
+mQb
bln
bln
bln
+lSu
mQb
bln
lJO
@@ -227181,12 +229517,12 @@ mVE
mVE
xFs
pLn
-aDy
+dpl
tKI
-ljK
+wKu
tXs
ljK
-rUa
+aRe
tKI
hbt
cTD
@@ -227198,7 +229534,7 @@ tKI
tKI
kPq
tKI
-qjC
+bln
bln
bln
bln
@@ -227228,23 +229564,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
@@ -227389,14 +229725,14 @@ wNO
bln
bln
bln
+uer
bln
-bln
-tCr
-bln
+bvb
+tMa
uei
tmR
uei
-bln
+mQb
uei
tmR
uei
@@ -227406,7 +229742,7 @@ tmR
uei
bln
bln
-bln
+lSu
bln
bln
bln
@@ -227440,14 +229776,14 @@ aWN
pLn
qFs
tKI
-rvW
+mqa
xqj
vsT
gXr
tKI
-rVt
+gec
ihc
-bod
+sJI
tKI
hsQ
bCQ
@@ -227485,8 +229821,8 @@ aBR
bln
bln
bln
-tCr
-bln
+fPc
+mQb
xxB
xxB
xxB
@@ -227500,9 +229836,9 @@ xxB
xxB
xxB
xxB
-bln
-tCr
-bln
+lSu
+fPc
+mQb
bln
wNO
wNO
@@ -227645,11 +229981,11 @@ wNO
wNO
bln
bln
+mQb
bln
bln
-bln
-tCr
-bln
+ebW
+mQb
uei
tmR
uei
@@ -227662,10 +229998,10 @@ uei
tmR
uei
bln
-bln
-bln
+lSu
+lSu
mQb
-bln
+ntK
bln
uer
bln
@@ -227694,7 +230030,7 @@ npq
ecU
gkZ
tlO
-kyc
+udA
tKI
tKI
kJO
@@ -227703,7 +230039,7 @@ kJO
tKI
tKI
stP
-dVX
+vwi
oLo
tKI
iUW
@@ -227742,8 +230078,8 @@ aBR
bln
bln
bln
-tCr
-bln
+bvb
+uer
tmR
tmR
tmR
@@ -227758,7 +230094,7 @@ tmR
tmR
tmR
bln
-tCr
+bvb
bln
bln
wNO
@@ -227905,7 +230241,7 @@ bln
bln
bln
bln
-bln
+fPc
bln
uei
tmR
@@ -227919,11 +230255,11 @@ uei
tmR
uei
bln
+lSu
bln
bln
bln
bln
-sxQ
bln
bln
miY
@@ -227941,7 +230277,7 @@ esv
lCb
ddZ
eUA
-nhS
+aoc
oCO
oCO
oCO
@@ -227953,11 +230289,11 @@ tKI
tKI
tKI
tKI
-jXC
+hZo
wBb
xvk
wBb
-kQV
+uZC
tKI
tKI
tKI
@@ -227969,15 +230305,15 @@ tKI
lSu
bln
bln
-gnZ
+oEB
bln
bln
bln
-gnZ
+oEB
bln
bln
bln
-gnZ
+oEB
bln
bln
bln
@@ -227997,9 +230333,9 @@ aBR
aBR
aBR
bln
+mQb
bln
-bln
-tCr
+fPc
bln
xxB
xxB
@@ -228015,7 +230351,7 @@ xxB
xxB
xxB
bln
-tCr
+fPc
bln
bln
wNO
@@ -228159,10 +230495,10 @@ wNO
wNO
bln
bln
-tCr
-tCr
-tCr
-bln
+hAM
+kdS
+kdS
+obe
bln
uei
tmR
@@ -228199,7 +230535,7 @@ eUi
eBB
tNd
nor
-qiT
+sst
cgw
mZu
hjv
@@ -228210,13 +230546,13 @@ tKI
dat
kDv
tKI
-kEs
+jEE
wBb
fgo
aSI
nEq
tKI
-kCv
+ybY
gvp
nSr
tKI
@@ -228256,13 +230592,13 @@ aBR
bln
bln
bln
-tCr
-bln
-bln
+uap
bln
bln
bln
bln
+mQb
+mQb
bln
sEB
bln
@@ -228272,8 +230608,8 @@ bln
bln
bln
bln
-mVm
-bln
+fPc
+mQb
bln
wNO
wNO
@@ -228416,14 +230752,14 @@ wNO
wNO
bln
bln
-tCr
+fPc
bln
bln
bln
bln
bln
tmR
-bln
+mQb
bln
bln
tmR
@@ -228435,8 +230771,8 @@ bln
vsI
eGr
eGr
-oLO
-nhb
+eGr
+hNJ
sxF
kjw
biY
@@ -228451,7 +230787,7 @@ bln
efI
efI
lJO
-jaS
+mLd
hBG
pEs
aFH
@@ -228478,7 +230814,7 @@ edN
jLf
tlm
jLf
-dpZ
+fsj
tKI
htd
bln
@@ -228512,8 +230848,8 @@ bln
bln
bln
bln
-bln
-tCr
+lSu
+dzZ
bln
xxB
xxB
@@ -228529,7 +230865,7 @@ xxB
xxB
xxB
bln
-tCr
+fPc
bln
bln
wNO
@@ -228672,11 +231008,11 @@ wNO
wNO
wNO
bln
-bln
-tCr
-bln
-fbh
-tZf
+mQb
+yfW
+tMa
+cnx
+tmR
tmR
sEB
sEB
@@ -228711,7 +231047,7 @@ lJO
wDf
sAR
sAR
-cBD
+lCn
kPy
dQI
pPT
@@ -228770,8 +231106,8 @@ bln
ozo
bln
bln
-tCr
-bln
+bvb
+tMa
tmR
tmR
tmR
@@ -228786,8 +231122,8 @@ tmR
tmR
tmR
bln
-tCr
-bln
+bvb
+tMa
bln
wNO
wNO
@@ -228929,10 +231265,10 @@ wNO
wNO
wNO
bln
+mQb
+vap
bln
-tCr
-bln
-bln
+mQb
bln
bln
bln
@@ -228943,18 +231279,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
@@ -228967,9 +231303,9 @@ lJO
lJO
mCT
mut
-lGo
-xhg
-pGy
+kby
+oLm
+rbE
wCL
tTc
wtr
@@ -229005,7 +231341,7 @@ lSu
lSu
lSu
bln
-gnZ
+oEB
bln
bln
bln
@@ -229026,9 +231362,9 @@ bln
bln
bln
bln
+mQb
+fPc
bln
-tCr
-muK
xxB
xxB
xxB
@@ -229043,7 +231379,7 @@ xxB
xxB
xxB
bln
-tCr
+fPc
bln
bln
wNO
@@ -229187,10 +231523,10 @@ wNO
wNO
bln
bln
-tCr
-mVm
-tCr
-bln
+fYT
+kdS
+kdS
+hPv
bln
uei
tmR
@@ -229238,7 +231574,7 @@ qnj
omg
hzL
kRc
-oWu
+lNV
paZ
tOw
iKX
@@ -229282,9 +231618,9 @@ bln
bln
bln
bln
-bln
-bln
-mVm
+mQb
+mQb
+fPc
bln
bln
bln
@@ -229293,15 +231629,15 @@ bln
bln
bln
sEB
+mQb
bln
bln
bln
+mQb
bln
bln
-bln
-bln
-tCr
-bln
+ebW
+mQb
bln
wNO
wNO
@@ -229447,12 +231783,12 @@ bln
bln
bln
bln
-bln
-bln
+fPc
+mQb
uei
tmR
uei
-bln
+mQb
uei
tmR
uei
@@ -229461,7 +231797,7 @@ uei
tmR
uei
bln
-bln
+lSu
bln
bln
miY
@@ -229492,7 +231828,7 @@ gpp
lsi
xhx
qnj
-nct
+ddQ
gAB
ykG
ykG
@@ -229506,7 +231842,7 @@ kEM
vkW
gak
tKI
-oKu
+dBJ
tKI
nMj
bln
@@ -229539,9 +231875,9 @@ bln
bln
bln
bln
+mQb
bln
-bln
-tCr
+fPc
bln
xxB
xxB
@@ -229557,8 +231893,8 @@ xxB
xxB
xxB
bln
-tCr
-bln
+chn
+mQb
bln
wNO
wNO
@@ -229701,11 +232037,11 @@ wNO
wNO
bln
bln
+mQb
+uer
bln
-bln
-bln
-tCr
-bln
+oHg
+mQb
uei
tmR
uei
@@ -229718,7 +232054,7 @@ uei
tmR
uei
bln
-bln
+lSu
bln
bln
miY
@@ -229795,10 +232131,10 @@ bln
bln
uGo
bln
+mQb
+mQb
bln
-bln
-bln
-tCr
+bvb
bln
tmR
tmR
@@ -229814,7 +232150,7 @@ tmR
tmR
tmR
bln
-tCr
+bvb
bln
bln
wNO
@@ -229958,11 +232294,11 @@ wNO
wNO
bln
bln
+mQb
+mQb
bln
-bln
-bln
-tCr
-bln
+yfW
+tMa
uei
tmR
uei
@@ -229975,7 +232311,7 @@ uei
tmR
uei
bln
-bln
+lSu
lJO
hEI
lJO
@@ -230006,7 +232342,7 @@ gpp
bAB
xEE
qnj
-hlW
+aOx
ykG
ykG
rCj
@@ -230025,15 +232361,15 @@ tKI
mZf
ooL
maT
-wSM
-oMd
+nNZ
+oSK
maT
-oMd
-bNo
+vEG
+rEr
maT
sEB
bln
-gnZ
+oEB
bln
bln
bln
@@ -230052,10 +232388,10 @@ bln
bln
cWX
bln
+mQb
+lSu
bln
-bln
-bln
-tCr
+fPc
bln
xxB
xxB
@@ -230071,7 +232407,7 @@ xxB
xxB
xxB
bln
-tCr
+fPc
bln
bln
wNO
@@ -230215,10 +232551,10 @@ wNO
wNO
bln
bln
-bln
-bln
-bln
-tCr
+uer
+mQb
+lSu
+wOq
bln
uei
tmR
@@ -230232,7 +232568,7 @@ uei
tmR
uei
bln
-tCr
+bln
lJO
khW
iSn
@@ -230282,11 +232618,11 @@ tKI
maT
maT
maT
-sym
+xmk
bde
-jIE
-bde
-ksf
+kXr
+aRx
+kjd
maT
miY
xeg
@@ -230311,12 +232647,12 @@ cWX
bln
bln
bln
-bln
-tCr
-bln
-bln
+lSu
+pMM
bln
bln
+mQb
+mQb
bln
bln
bln
@@ -230328,7 +232664,7 @@ bln
bln
bln
bln
-tCr
+fPc
bln
bln
wNO
@@ -230472,10 +232808,11 @@ wNO
wNO
bln
bln
+lSu
bln
bln
+vap
bln
-tCr
bln
bln
bln
@@ -230489,7 +232826,6 @@ bln
bln
bln
bln
-tCr
lJO
gDZ
gDZ
@@ -230528,7 +232864,7 @@ neq
muy
muy
gRp
-sbv
+kjh
tKI
plg
jdW
@@ -230539,16 +232875,16 @@ tKI
cYo
tEL
maT
-wSM
-hFU
+nNZ
+jME
kXr
-hFU
-bNo
+hTk
+rEr
maT
mZf
kKU
kKU
-dPX
+vJv
bln
bln
bln
@@ -230566,26 +232902,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
@@ -230732,21 +233068,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
@@ -230798,7 +233134,7 @@ kLZ
jPc
xKj
hyY
-pdR
+xDu
huI
gbv
maT
@@ -230806,7 +233142,7 @@ kXr
maT
maT
kXr
-bln
+htd
bln
bln
bln
@@ -230823,21 +233159,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
@@ -230987,18 +233323,18 @@ wNO
bln
bln
bln
+lSu
bln
bln
bln
bln
-bln
-bln
-vbG
-bln
+mQb
+fPc
bln
bln
bln
bln
+lSu
bln
bln
bln
@@ -231023,7 +233359,7 @@ lJO
qzs
jnV
lJO
-sHy
+tdY
gHS
iMT
hqx
@@ -231059,7 +233395,7 @@ kVl
czv
cCW
wyB
-gTb
+mSP
wyB
tEj
maT
@@ -231077,27 +233413,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
@@ -231246,20 +233582,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
@@ -231318,8 +233654,8 @@ huI
huI
huI
uqg
-ndK
-kXr
+pUi
+maT
bln
bln
bln
@@ -231336,24 +233672,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
@@ -231499,15 +233835,15 @@ wNO
wNO
wNO
bln
-bln
+mQb
bln
ozo
bln
bln
+lSu
+mQb
bln
-bln
-bln
-vbG
+uap
bln
fsm
lBD
@@ -231517,7 +233853,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
bln
lJO
@@ -231564,7 +233900,7 @@ hbY
tKI
tKI
tKI
-ghl
+kUF
ajw
ajw
otd
@@ -231575,8 +233911,8 @@ otd
otd
uqn
kLZ
-huI
-maT
+jcJ
+kXr
bln
bln
bln
@@ -231602,15 +233938,15 @@ rej
iaT
daS
swS
-cRX
+mNY
mNY
smj
smj
iCX
glh
bln
-bln
-bln
+mQb
+mQb
bln
bln
bln
@@ -231756,16 +234092,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
@@ -231805,7 +234141,7 @@ hMg
cke
kTC
qnj
-qwn
+dei
wpC
vZg
gta
@@ -231839,7 +234175,7 @@ qjQ
qjQ
qjQ
qjQ
-rLo
+jDl
qjQ
bln
bln
@@ -231849,7 +234185,7 @@ qPw
csE
hRw
pRj
-vZW
+eDJ
ptf
daS
ptf
@@ -231861,12 +234197,12 @@ mRU
qAI
snw
mNY
-kkp
+qDS
ooU
ipE
glh
-bln
-bln
+mQb
+uer
bln
bln
bln
@@ -232013,20 +234349,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
@@ -232047,7 +234383,7 @@ hEI
lJO
lJO
dDV
-sFN
+oaR
lJO
lJO
lJO
@@ -232104,26 +234440,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
@@ -232271,19 +234607,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
@@ -232340,7 +234676,7 @@ ajw
mmi
wiz
mmi
-vmn
+sln
wam
wam
wam
@@ -232352,9 +234688,9 @@ ajw
tAS
hoD
hoD
-gAY
+hoD
wjZ
-sJn
+get
qjQ
bln
ptf
@@ -232363,24 +234699,24 @@ sUS
ybu
vUW
pRj
-nkI
-daS
-daS
+mKA
+yiR
daS
-vYd
+iJh
+wRu
pRj
pRj
kuR
-bGf
+kCC
lDh
pRj
mNY
-bCc
+mNY
pyI
mNY
glh
-bln
-bln
+mQb
+uer
bln
bln
bln
@@ -232528,15 +234864,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
@@ -232563,14 +234899,14 @@ hEI
hjI
wPr
oSy
-sDl
+pLg
ybQ
ybQ
ybQ
ybQ
ybQ
ybQ
-sDl
+vsF
jOt
ozw
eRw
@@ -232578,7 +234914,7 @@ gpp
gJz
nQv
nDY
-tEu
+tzP
tKI
wuA
nAr
@@ -232590,7 +234926,7 @@ nAr
nAr
wNR
tKI
-ssg
+jnp
ajw
ajw
ajw
@@ -232820,14 +235156,14 @@ hEI
hjI
wPr
oSy
-sSA
+sDl
ybQ
gGZ
lye
ebL
edn
ybQ
-sDl
+sCK
jOt
ozw
aJA
@@ -232854,7 +235190,7 @@ vlN
ajw
wiz
ajw
-vmn
+nNu
wam
wam
wam
@@ -232877,7 +235213,7 @@ ace
ybu
thW
pRj
-uhX
+ntO
dnM
nzp
wEW
@@ -233083,22 +235419,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
@@ -233125,12 +235461,12 @@ jAq
qxb
nrm
hoD
-rea
+qIP
qjQ
bln
pRj
vSE
-eGX
+mqI
qOl
ujj
pRj
@@ -233138,7 +235474,7 @@ dOH
hjH
qTS
dNC
-xBX
+iRJ
pRj
wls
qxY
@@ -233147,11 +235483,11 @@ cjL
gfC
pRj
daS
-viE
+mxg
pRj
pRj
pRj
-vsI
+oMa
bln
bln
bln
@@ -233341,7 +235677,7 @@ bnz
jxq
sOz
vGI
-ptk
+oRZ
lEE
idO
aJA
@@ -233351,9 +235687,9 @@ tKI
tKI
tKI
tKI
-qRR
+blY
tKI
-aes
+wrP
alT
taf
kGQ
@@ -233391,11 +235727,11 @@ kYF
jOJ
qzM
pRj
-dOH
+qFC
uIx
osI
osI
-hjH
+xbq
pRj
nDy
hUI
@@ -233404,11 +235740,11 @@ nVR
iWZ
bse
xHe
-pBB
+oBZ
lPE
daS
nNr
-sEB
+qVo
bln
bln
bln
@@ -233558,7 +235894,7 @@ tGr
bln
bln
bln
-gnZ
+oEB
bln
tGr
tGr
@@ -233610,7 +235946,7 @@ pdf
pdf
wBb
tKI
-pPE
+aiQ
alT
dcs
kin
@@ -233646,13 +235982,13 @@ pRj
csE
kSD
csE
-nOk
+uwd
pRj
-xOl
+poO
hjH
daS
pXv
-kNZ
+kEC
pRj
bxV
uKP
@@ -233661,11 +235997,11 @@ hUI
lLm
mLa
qSY
+daS
pRj
+igG
pRj
-pRj
-pRj
-vsI
+qVo
bln
bln
bln
@@ -233848,14 +236184,14 @@ hEI
hjI
xJJ
oSy
-sSA
+sDl
ybQ
egF
jYV
jDW
hPf
ybQ
-sDl
+eaG
jOt
ozw
ons
@@ -233868,11 +236204,11 @@ tKI
wBb
bcx
qiK
-tda
+rrB
lit
qiP
-noF
-dqV
+fgc
+obQ
nxD
rbC
kXr
@@ -233900,7 +236236,7 @@ qjQ
bln
bln
pRj
-rKQ
+wVr
drs
pRj
pRj
@@ -233919,10 +236255,10 @@ pRj
pRj
wFg
pRj
-bln
-bln
-bln
-bln
+pRj
+pRj
+pRj
+eHC
bln
bln
bln
@@ -234105,21 +236441,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
@@ -234154,15 +236490,15 @@ qdC
jBf
dhY
qjQ
-sEB
-sEB
+oot
+oot
pRj
daS
tut
qai
qoK
pXv
-exy
+pXv
pXv
pXv
pXv
@@ -234177,9 +236513,9 @@ ptf
xHe
ptf
bln
-bln
-bln
-bln
+uer
+uer
+mQb
bln
bln
bln
@@ -234389,7 +236725,7 @@ tKI
dMv
pdf
tKI
-drG
+iUM
ssc
cXl
wRx
@@ -234435,8 +236771,8 @@ xHe
ptf
bln
bln
-bln
-bln
+mQb
+mQb
bln
bln
bln
@@ -234583,7 +236919,7 @@ tGr
miY
bln
bln
-gnZ
+oEB
mZf
bln
lSu
@@ -234617,7 +236953,7 @@ lJO
lJO
lJO
lJO
-mzy
+kcZ
biY
biY
sDl
@@ -234878,19 +237214,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
@@ -234905,8 +237241,8 @@ rCC
gLN
rCC
eVl
-wBF
-uDr
+rCC
+dXh
cHb
cHb
mOA
@@ -234939,7 +237275,7 @@ bln
bln
bln
bln
-sEB
+jNZ
nME
bln
bln
@@ -235138,7 +237474,7 @@ hDU
hDU
hDU
hDU
-heG
+lyy
aJm
iFj
hDU
@@ -235182,8 +237518,8 @@ hoD
abz
qjQ
qjQ
-sEB
-sEB
+oot
+oot
pRj
uWW
daS
@@ -235195,9 +237531,9 @@ bln
bln
bln
bln
-sEB
+jNZ
xbV
-sEB
+qVo
bln
bln
bln
@@ -235207,7 +237543,7 @@ ptf
bln
bln
bln
-bln
+mQb
bln
bln
bln
@@ -235391,10 +237727,10 @@ hEI
qGU
biY
biY
-kqx
+mSY
mQh
xKb
-vMc
+njD
xMW
apI
tOi
@@ -235432,7 +237768,7 @@ nZh
lNG
tue
qjQ
-hxE
+jBf
nvx
lis
aud
@@ -235454,7 +237790,7 @@ bln
bln
fkF
cPp
-sEB
+rwt
bln
bln
bln
@@ -235462,11 +237798,11 @@ ptf
xHe
ptf
bln
+ntK
bln
-bln
-bln
-bln
-bln
+mQb
+uer
+mQb
bln
bln
bln
@@ -235681,7 +238017,7 @@ vlL
qxQ
eBe
hnC
-qmi
+cah
aSh
ycQ
nZh
@@ -235710,7 +238046,7 @@ bln
bln
bln
bln
-sEB
+lbc
bln
bln
bln
@@ -235721,7 +238057,7 @@ ptf
bln
bln
bln
-sEB
+mQb
bln
bln
bln
@@ -235743,8 +238079,8 @@ bln
bln
bln
bln
-tCr
-tCr
+bln
+bln
bln
bln
bln
@@ -235921,7 +238257,7 @@ wvK
aKs
tgH
gst
-vSw
+iXM
vWW
vWW
vWW
@@ -235967,7 +238303,7 @@ bln
bln
bln
bln
-sEB
+tIC
bln
bln
bln
@@ -235989,20 +238325,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
@@ -236155,7 +238491,7 @@ bln
bln
lJO
oXf
-rlX
+xSx
fdF
lJO
vqS
@@ -236178,15 +238514,15 @@ kFu
sJr
vBu
gst
-iFh
+sbY
xAy
xAy
tge
ozH
bZg
gst
-tZR
-nsq
+hYG
+jYG
dOw
dOw
yhe
@@ -236246,20 +238582,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
@@ -236381,7 +238717,7 @@ tGr
tGr
bln
jNZ
-gnZ
+oEB
jNZ
bln
ntK
@@ -236411,7 +238747,7 @@ bln
bln
dvY
lJO
-eKX
+nLE
erl
oDH
fVm
@@ -236419,10 +238755,10 @@ ndz
oIB
biY
biY
-hhN
+gNC
iLi
oJT
-spV
+wwO
gad
gAk
tMI
@@ -236440,10 +238776,10 @@ sto
lpj
gst
gst
-oiK
+npP
bLW
xjP
-sXf
+qcI
gxO
dKK
xmN
@@ -236460,7 +238796,7 @@ iOS
mYs
fxn
pRj
-kCn
+mgo
daS
pRj
iaT
@@ -236497,24 +238833,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
@@ -236684,9 +239020,9 @@ biY
biY
biY
biY
-wkC
-lnE
-wkC
+ede
+iKj
+bPp
bXm
lnc
lnc
@@ -236707,11 +239043,11 @@ wEh
rCC
sOn
aBh
-tNY
-dqX
+eaE
+wkN
aBh
sOn
-rzm
+sOn
tue
tue
tue
@@ -236748,7 +239084,7 @@ suR
pRj
pRj
ick
-pRj
+ivm
pRj
pRj
mNY
@@ -236758,21 +239094,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
@@ -236918,14 +239254,14 @@ xAs
xAs
xAs
xAs
-tCj
-wPN
+xAs
+hIv
wPN
wPN
-aeV
lJO
lJO
-vNK
+lJO
+otM
hDc
wGG
psR
@@ -236956,8 +239292,8 @@ bep
dnq
gOy
dnq
-sIg
-pTB
+srw
+yld
pTB
pTB
pTB
@@ -236968,8 +239304,8 @@ dnq
dyN
rGl
hJE
-kzC
-wLU
+vYA
+hzV
rGl
vTo
oMO
@@ -236979,7 +239315,7 @@ ptd
obj
obj
obj
-iAt
+obj
obj
obj
obj
@@ -237013,24 +239349,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
@@ -237180,15 +239516,15 @@ sDl
sDl
sDl
hEI
-iwj
-kEB
+sop
+bJX
fFb
rtq
lJO
lJO
lJO
lJO
-baE
+htJ
apX
hjI
hdh
@@ -237213,7 +239549,7 @@ cKq
cKq
qsy
iwz
-oTg
+dLQ
iwz
xwC
jwt
@@ -237226,7 +239562,7 @@ rQn
iwz
iwz
iwz
-eYP
+uag
iwz
nQO
bmv
@@ -237267,7 +239603,7 @@ mXa
qCl
mNY
aUj
-uNu
+vWy
kLc
oFY
sIN
@@ -237283,11 +239619,11 @@ pXY
vyU
uOE
bln
+chb
bln
-tCr
-bln
-tCr
+ntK
bln
+chb
bln
bln
bln
@@ -237437,9 +239773,9 @@ sDl
sDl
sDl
hEI
-giR
-rkd
-rmU
+nFG
+sjp
+rqk
ure
lJO
bZx
@@ -237470,8 +239806,8 @@ xIS
mgj
mgj
mgj
-mZS
-mgV
+srw
+jOy
ljp
gHe
sni
@@ -237479,11 +239815,11 @@ bep
qrJ
uLC
xzh
-dnq
+aNE
qcu
bDR
wXW
-mpy
+cYj
bep
ylU
dnq
@@ -237504,7 +239840,7 @@ pRj
rAO
fhW
mNY
-vjx
+anz
mDf
nLb
kNp
@@ -237521,8 +239857,8 @@ kCn
kCn
kCn
kCn
-xtX
-azC
+ioQ
+jMn
pZG
toq
uDE
@@ -237530,7 +239866,7 @@ xFB
rkc
gxR
uaG
-kAK
+iLY
iLY
iLY
bxa
@@ -237540,12 +239876,12 @@ pXY
pXY
fcP
bln
+chb
bln
-tCr
-bln
-tCr
-bln
+mQb
bln
+bvb
+jHb
ozo
bln
bln
@@ -237680,7 +240016,7 @@ ooL
tDg
tDg
oFI
-gnZ
+oEB
sgW
akQ
lSu
@@ -237699,15 +240035,15 @@ lJO
lJO
lJO
lJO
-wrN
+bZx
bZx
bWn
-huM
+seL
nUr
ibk
xwr
xgg
-aFx
+xId
whQ
kka
fmm
@@ -237734,14 +240070,14 @@ gfb
pYB
gfb
gfb
-nqU
+vtg
rcE
rcE
rcE
hVc
jII
jII
-dnq
+rLl
ylU
dnq
jII
@@ -237752,7 +240088,7 @@ jqT
hcL
hcL
bln
-bln
+mQb
bln
bln
bln
@@ -237793,15 +240129,15 @@ iLY
lqE
pXY
pXY
-vyU
-vyU
+pXY
+pXY
uOE
bln
+chb
bln
-tCr
-bln
-tCr
+uer
bln
+chb
bln
bln
bln
@@ -237940,10 +240276,10 @@ kyy
cJi
abb
oFI
-gnZ
+oEB
abb
oFI
-gnZ
+oEB
abb
oFI
rzG
@@ -237955,7 +240291,7 @@ bZx
bZx
bZx
bZx
-snv
+mgs
kQi
oWk
bWn
@@ -237976,11 +240312,11 @@ pAZ
ucn
tLi
pAZ
-xyl
-dnq
-qjm
+tVd
+uLC
+jCT
dxK
-hbp
+xax
oyp
phf
sEl
@@ -237991,9 +240327,9 @@ odN
iZq
dpH
gfb
-ydT
+mYG
iIA
-fSC
+fGQ
iIA
cvg
qQb
@@ -238002,15 +240338,15 @@ okb
ylU
jwl
jII
-bln
+kps
hcL
bXF
kcm
mGm
hcL
bln
-bln
-bln
+uer
+mQb
bln
ptf
ptf
@@ -238026,12 +240362,12 @@ fxR
aQR
csT
csT
-cQH
+csT
mNY
kCn
mNY
dUn
-eEm
+thC
cpH
kbJ
kbJ
@@ -238042,23 +240378,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
@@ -238212,11 +240548,11 @@ bZx
bZx
bZx
bZx
-snv
+gYm
krQ
skZ
bWn
-eOK
+nch
xMX
xIz
bIc
@@ -238233,11 +240569,11 @@ pAZ
wtj
lBD
bcN
-bQV
-hIS
-bfl
+qzy
+adP
+adP
dxK
-wvw
+wzk
wzk
wzk
wzk
@@ -238294,14 +240630,14 @@ kbJ
kbJ
wkw
yaL
-wrc
+saO
eVV
rat
dNG
sth
aUj
aUj
-stI
+rNZ
iLY
iLY
lqE
@@ -238311,13 +240647,13 @@ pXY
vyU
uOE
bln
+chb
bln
-tCr
-bln
-tCr
-bln
+mQb
bln
+chb
bln
+mQb
bln
bln
wNO
@@ -238446,15 +240782,15 @@ aWk
diC
bJj
lyG
-jko
+teq
bXy
feJ
xWb
jDM
brx
rai
-twP
-sPK
+amn
+hzG
wZD
iDq
bln
@@ -238469,11 +240805,11 @@ bZx
bZx
bZx
bZx
-snv
+gYm
krQ
gYp
bWn
-lvm
+iUO
egL
ssF
pSu
@@ -238491,7 +240827,7 @@ mQb
bNy
qWZ
oVR
-jOi
+apo
oVR
dxK
xVq
@@ -238505,12 +240841,12 @@ dkb
kmi
iYb
xaA
-vXV
-wjv
+ovx
+gMq
pec
fJl
xMR
-bJy
+fYE
cpm
dnq
ylU
@@ -238518,9 +240854,9 @@ dnq
paM
paM
hcL
-fUI
+jqT
hdj
-ssr
+jqT
hcL
paM
paM
@@ -238532,7 +240868,7 @@ pRj
pRj
daS
mNY
-prF
+gFI
bdR
xaI
xaI
@@ -238558,7 +240894,7 @@ ycB
qtj
qtj
aUj
-kAK
+iLY
iLY
iLY
bxa
@@ -238567,14 +240903,14 @@ pXY
pXY
pXY
fcP
+lSu
+chb
bln
-bln
-tCr
-bln
-tCr
-bln
-bln
-bln
+uer
+mQb
+bvb
+tMa
+mQb
bln
bln
wNO
@@ -238715,10 +241051,10 @@ fDc
eGA
iDq
jSt
-kvh
+mfH
wPN
-tCj
-sDl
+xAs
+jbe
sDl
sDl
bHI
@@ -238726,11 +241062,11 @@ bZx
bZx
bZx
bZx
-snv
+gYm
krQ
thI
bWn
-oQE
+tsz
xMX
hSl
ueS
@@ -238747,9 +241083,9 @@ pAZ
stJ
fsm
qWZ
-aDZ
-mpP
-uLp
+lvA
+gKU
+aoW
dxK
fbw
hue
@@ -238767,7 +241103,7 @@ ool
jRC
cgC
jaq
-cua
+vvT
cpm
dnq
ylU
@@ -238808,14 +241144,14 @@ yaL
yaL
yaL
yaL
-sSJ
+pmi
bTF
nHe
jDP
wTg
-jWJ
+bRj
gyR
-clG
+fhX
kAK
iLY
lqE
@@ -238825,11 +241161,11 @@ pXY
pXY
uOE
bln
+yfW
+jKQ
bln
-tCr
-bln
-tCr
-bln
+mQb
+ebW
bln
bln
bln
@@ -238983,7 +241319,7 @@ bZx
bZx
bZx
bZx
-snv
+gYm
krQ
gYp
bWn
@@ -239001,14 +241337,14 @@ xhw
eJe
pXn
pAZ
-nyE
+jDB
qWZ
qWZ
qWZ
-ldT
+wrk
qWZ
dxK
-wzk
+cct
hue
xit
wfK
@@ -239018,7 +241354,7 @@ iYb
iYb
iYb
iYb
-rpu
+kFW
ybI
nnR
tuz
@@ -239026,11 +241362,11 @@ eRZ
qpZ
rAA
cpm
-mpy
-sYu
-ckc
+ooV
+bwD
+qdI
paM
-sqq
+pdg
nBk
nBk
oSY
@@ -239038,7 +241374,7 @@ nBk
nBk
aCX
paM
-gZk
+tUG
jZU
uFh
hwx
@@ -239061,7 +241397,7 @@ mNY
akL
tvF
tvF
-aYS
+qya
gTK
ruO
fKe
@@ -239070,10 +241406,10 @@ aQW
pVK
wRd
gGt
-yhC
+uJR
rIX
-kAK
-nRV
+iLY
+lqE
fcP
cSx
vyU
@@ -239082,14 +241418,14 @@ vyU
vyU
fcP
bln
+pMM
+mQb
+lSu
bln
-tCr
-tCr
-tCr
-bln
-bln
-bln
-bln
+fYT
+tTO
+mQb
+mQb
bln
wNO
wNO
@@ -239240,27 +241576,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
@@ -239288,7 +241624,7 @@ ylU
bep
paM
xxQ
-nnM
+gMl
kzO
gdP
ykL
@@ -239336,17 +241672,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
@@ -239487,7 +241823,7 @@ iDq
iDq
ciG
mfH
-sDl
+jbe
sDl
sDl
sDl
@@ -239497,7 +241833,7 @@ bZx
bZx
bZx
bZx
-snv
+gYm
lwO
vTg
bWn
@@ -239521,7 +241857,7 @@ xCv
vWL
nci
tPC
-uks
+xkI
gnM
aHW
clP
@@ -239531,7 +241867,7 @@ clP
clP
clP
clP
-rya
+rwn
eWc
nDA
vvi
@@ -239539,7 +241875,7 @@ xpJ
vYs
suL
gCn
-hUl
+qIx
dZQ
aNs
dnq
@@ -239552,7 +241888,7 @@ nBk
nBk
iiT
paM
-jZU
+wxY
hFi
bts
nlr
@@ -239600,10 +241936,10 @@ gka
gka
gka
gka
+aao
+bvb
+tMa
bln
-tCr
-tCr
-tCr
bln
wNO
wNO
@@ -239737,7 +242073,7 @@ feJ
uGr
uGr
iDq
-pLx
+jBr
lAL
gPp
iDq
@@ -239755,10 +242091,10 @@ psN
psN
psN
wqx
-gEb
+cJd
gYp
bWn
-tEn
+bTJ
cGt
wRI
qdE
@@ -239768,22 +242104,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
@@ -239837,7 +242173,7 @@ dth
bTF
wRd
gka
-swe
+igw
lAu
vWr
vWr
@@ -239858,9 +242194,9 @@ lhC
maY
gka
bln
-tCr
+chb
+bln
bln
-tCr
bln
wNO
wNO
@@ -240034,7 +242370,7 @@ grA
fwQ
nOH
gxU
-jJR
+gZq
ybv
ybv
ybv
@@ -240114,10 +242450,10 @@ brY
lhC
lhC
gka
-bln
-tCr
-bln
-tCr
+lSu
+chb
+uer
+mQb
bln
wNO
wNO
@@ -240264,7 +242600,7 @@ sDl
sDl
sDl
psN
-eUR
+xir
nTp
nTp
kxp
@@ -240272,7 +242608,7 @@ kQc
cxz
nnx
bWn
-sfz
+rkV
npu
oMS
npu
@@ -240282,7 +242618,7 @@ nSo
jII
pAZ
pAZ
-dnq
+rLl
eJe
utR
tmQ
@@ -240315,7 +242651,7 @@ dnq
vrX
pua
paM
-pEY
+wik
vJI
uud
gdP
@@ -240323,7 +242659,7 @@ pjl
uOn
msU
paM
-khu
+lxi
bbo
pbE
vja
@@ -240346,7 +242682,7 @@ mNY
ixG
aPf
dzJ
-neV
+drd
twt
mEw
sSJ
@@ -240372,9 +242708,9 @@ rQf
mUs
gka
bln
-tCr
+chb
bln
-tCr
+mQb
bln
wNO
wNO
@@ -240521,9 +242857,9 @@ sDl
sDl
sDl
psN
-nUI
+riB
dkY
-nCW
+wLc
hzY
bRn
fng
@@ -240537,7 +242873,7 @@ bWn
bWn
mae
pAZ
-usz
+mDy
eZL
ljx
nxW
@@ -240547,7 +242883,7 @@ qXF
dMX
gER
nOH
-bQd
+xVc
ybv
xzT
cHO
@@ -240560,7 +242896,7 @@ bln
kta
jLa
rBL
-fYF
+uMN
clE
jQI
qnr
@@ -240590,13 +242926,13 @@ dPT
pRj
pMu
gVD
-gSQ
+kPu
ajF
qwe
uJH
-hHF
+iAc
roj
-rIr
+gXN
pRj
kCn
mNY
@@ -240608,7 +242944,7 @@ gTK
myX
sSJ
gka
-eEh
+oAs
fab
eDC
uIV
@@ -240628,10 +242964,10 @@ viH
viH
rQf
gka
+mQb
+bvb
+jHb
bln
-tCr
-bln
-tCr
bln
wNO
wNO
@@ -240786,11 +243122,11 @@ pfe
aeQ
mdX
pfe
-ktK
-fGr
-olt
-qSP
-eSm
+oyd
+vws
+mjf
+wEb
+sIZ
pfe
pfe
jII
@@ -240857,10 +243193,10 @@ xtQ
hIH
kCn
mNY
-wiM
+hFJ
tMD
ehJ
-xFM
+fMt
twt
tXB
sSJ
@@ -240868,7 +243204,7 @@ gka
uXC
fab
fNv
-iEd
+wuo
wuo
nnw
spv
@@ -240885,10 +243221,10 @@ lhC
lhC
lhC
gka
+mQb
+chb
bln
-tCr
bln
-tCr
bln
wNO
wNO
@@ -241013,8 +243349,8 @@ lQc
lQc
nbp
mgU
-nbt
-ioi
+bvX
+ccF
fad
azx
tDw
@@ -241038,11 +243374,11 @@ iiH
teP
teP
teP
-kGJ
+qbk
gMK
fng
rHc
-oOt
+mxF
uog
vVY
uog
@@ -241050,7 +243386,7 @@ uog
nfU
bzI
uog
-qzU
+yaF
mny
dnq
wmK
@@ -241075,8 +243411,8 @@ kta
kta
dHa
kta
-wal
-wDi
+kta
+cPK
qQC
jtN
aYq
@@ -241085,7 +243421,7 @@ kta
qQG
nlT
krv
-ylF
+hyc
fdy
fdy
fdy
@@ -241105,7 +243441,7 @@ cLN
cLN
cLN
fdy
-oXc
+eKb
nzq
cLN
cLN
@@ -241114,7 +243450,7 @@ kKH
pRj
eAj
sro
-apL
+dgp
qkT
kzA
whW
@@ -241126,7 +243462,7 @@ glc
fab
ktw
bny
-qDj
+jQe
xBp
bYw
bYw
@@ -241143,9 +243479,9 @@ phL
lhC
gka
bln
-tCr
+chb
+bln
bln
-tCr
bln
wNO
wNO
@@ -241269,7 +243605,7 @@ bln
npb
bln
lSu
-rhf
+hIO
rPP
eNl
vbF
@@ -241299,7 +243635,7 @@ vDb
vvh
vPC
pvm
-tJZ
+dMi
cvC
kQc
iYG
@@ -241307,7 +243643,7 @@ kQc
kOV
kQc
kQc
-kkr
+iJN
gOy
gOy
fKF
@@ -241315,7 +243651,7 @@ qjg
utR
tmQ
lkI
-smI
+lvl
aog
ktl
dEI
@@ -241342,7 +243678,7 @@ xXt
gET
gMM
jba
-iot
+mKC
oQp
oQp
lCY
@@ -241362,7 +243698,7 @@ oQp
oQp
oQp
oQp
-lEK
+mxX
oQp
oQp
kPg
@@ -241373,7 +243709,7 @@ fFy
mNY
bTq
xUP
-fQU
+gRt
rpF
twt
fcg
@@ -241399,10 +243735,10 @@ efE
kJU
lhC
gka
+tMc
+chb
bln
-tCr
bln
-tCr
bln
wNO
wNO
@@ -241526,7 +243862,7 @@ bln
npb
bln
bln
-rhf
+hIO
vyd
ePr
kGc
@@ -241536,7 +243872,7 @@ mgU
kqc
kqc
kqc
-wAq
+jct
jaw
xwf
aPd
@@ -241550,21 +243886,21 @@ bgN
bgN
uwB
lvS
-xLO
+dYA
fGM
-aac
+hrO
nUJ
qbA
csB
-stB
+gtB
tny
dLo
fBF
xUU
wYZ
aKI
-xUU
-avd
+peq
+obb
qJV
vBh
fiE
@@ -241573,9 +243909,9 @@ utR
tmQ
axf
kzD
-kJP
+nsj
lhv
-heS
+sDV
ybv
xwm
vzT
@@ -241589,8 +243925,8 @@ kta
kta
eoJ
kta
-wal
-tEK
+kta
+lEJ
qQC
hNg
rFD
@@ -241599,8 +243935,8 @@ kta
vtz
fuM
vXh
-jZB
-rWn
+hyc
+tdK
mJa
gDV
fxl
@@ -241618,8 +243954,8 @@ eQX
rWn
rWn
gDV
-cSP
-dAk
+tro
+eKb
jRV
uOL
gQq
@@ -241638,9 +243974,9 @@ wfn
ras
fkj
fab
-nsK
+iag
dfq
-ghj
+ein
xBp
imd
imd
@@ -241656,10 +243992,10 @@ lhC
gsk
lhC
gka
+lSu
+chb
bln
-tCr
bln
-tCr
bln
wNO
wNO
@@ -241783,12 +244119,12 @@ bln
miY
oot
oot
-rhf
+hIO
jDt
wtg
diq
-ehy
-vtZ
+uet
+ptr
mgU
fUj
kcc
@@ -241884,20 +244220,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
@@ -241914,9 +244250,9 @@ lhC
lhC
gka
bln
-tCr
+chb
+bln
bln
-tCr
bln
wNO
wNO
@@ -242040,9 +244376,9 @@ bln
npb
bln
bln
-rhf
-rhf
-rhf
+hIO
+hIO
+hIO
bUx
bUx
bUx
@@ -242070,7 +244406,7 @@ jOQ
jOQ
jOQ
jOQ
-cyZ
+deY
deY
fhz
deY
@@ -242079,7 +244415,7 @@ deY
deY
deY
wAZ
-oAz
+tVd
uLC
xQg
fwm
@@ -242132,7 +244468,7 @@ vvv
tTV
jtA
bID
-rlL
+obo
miw
gCK
cMd
@@ -242140,13 +244476,13 @@ lHC
vzU
ahm
qnC
-xBh
+bjK
qGQ
sOE
wcx
-mGV
+fVy
qnC
-sIp
+nAw
uif
wRd
gka
@@ -242171,9 +244507,9 @@ vBm
lfp
gka
bln
-tCr
+bvb
+hZu
bln
-tCr
bln
wNO
wNO
@@ -242338,7 +244674,7 @@ skl
skl
pAZ
pAZ
-dnq
+rLl
gOy
utR
tmQ
@@ -242397,7 +244733,7 @@ dcC
jGB
akz
sCA
-aSw
+mta
ojv
bAT
eri
@@ -242427,10 +244763,10 @@ rQf
rQf
mUs
gka
-bln
-tCr
-bln
-tCr
+mQb
+chb
+mQb
+mQb
bln
wNO
wNO
@@ -242642,7 +244978,7 @@ oyj
gwK
nEV
bry
-fDM
+vPc
fLq
hro
tKi
@@ -242656,9 +244992,9 @@ wHj
mBB
juH
ojv
-hut
+lqi
mDw
-jDT
+tbH
qKQ
aTj
uif
@@ -242684,10 +245020,10 @@ fyR
lhC
lhC
gka
-bln
-tCr
-bln
-tCr
+mQb
+chb
+uer
+mQb
bln
wNO
wNO
@@ -242828,7 +245164,7 @@ kpj
fGq
eig
jNp
-sDl
+jbe
sDl
sDl
sDl
@@ -242852,18 +245188,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
@@ -242921,7 +245257,7 @@ rGu
eZO
wRd
gka
-xNn
+lzJ
snO
pIm
vWr
@@ -242942,9 +245278,9 @@ pMC
qWJ
gka
bln
-tCr
+chb
+bln
bln
-tCr
bln
wNO
wNO
@@ -243080,7 +245416,7 @@ kzw
kzw
cAC
xAQ
-voA
+iMg
jNp
jNp
jNp
@@ -243091,7 +245427,7 @@ sDl
sDl
sDl
skl
-jOQ
+uFS
skl
nOl
oCF
@@ -243102,24 +245438,24 @@ ygB
mJO
oCF
ygB
-bLa
+bSW
oCF
ygB
lBD
jII
jII
jII
-ifd
+aVr
xwC
utR
pAZ
bln
qWZ
-oxe
+bGc
vmj
aqB
pVq
-nVZ
+rkI
oRk
mvc
mvc
@@ -243127,9 +245463,9 @@ rAW
kwz
ghJ
uEm
-sqU
+aEz
lpM
-klP
+rEo
euf
jzn
mhQ
@@ -243166,7 +245502,7 @@ bDz
rSC
inE
oPU
-wuV
+xpc
qnC
qnC
sCA
@@ -243198,10 +245534,10 @@ gka
gka
gka
gka
+aao
+bvb
+tMa
bln
-tCr
-tCr
-tCr
bln
wNO
wNO
@@ -243351,28 +245687,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
@@ -243385,12 +245721,12 @@ hCV
nkb
ptB
mvc
-olH
+lzb
anu
jly
fXb
mhQ
-eeq
+oYN
jUD
nZb
lRf
@@ -243406,13 +245742,13 @@ uwO
rSx
kRP
kRP
-lSw
+uFV
cAR
kNk
tmA
bNE
hht
-gMN
+hxe
xnE
tvd
egV
@@ -243425,13 +245761,13 @@ vzU
pZn
bBd
xSv
-aIg
-rjh
+gyR
+lLD
xZl
qaF
pna
-aIg
-ktx
+gyR
+cod
uif
jKe
wRd
@@ -243454,9 +245790,9 @@ haC
haC
haC
haC
-qCB
-bln
-bln
+hso
+lSu
+chb
bln
bln
bln
@@ -243618,20 +245954,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
@@ -243645,16 +245981,16 @@ xLF
lpM
oGQ
wKw
-vFb
+mZT
mhQ
hUV
aks
nLH
xex
mhQ
-ufw
-rpG
-jtY
+cBk
+kdA
+reb
xVK
tfx
tyK
@@ -243673,13 +246009,13 @@ guU
ayq
hpI
bID
-sSS
+iKh
rOU
-rcN
-qxy
-siz
-iUx
-kTQ
+qXt
+jEo
+fEL
+boX
+vjQ
lCD
pNO
nFc
@@ -243705,16 +246041,16 @@ bEa
dCy
dMK
gka
+nce
bln
bln
bln
bln
bln
-bln
-bln
-bln
-bln
-bln
+lSu
+hAM
+sds
+ntK
bln
bln
wNO
@@ -243877,7 +246213,7 @@ iPm
iPm
iPm
iPm
-mVW
+pcx
hay
cfr
dct
@@ -243887,9 +246223,9 @@ pAZ
wtj
eJK
qWZ
-kjY
-bCW
-uLp
+kGe
+lWd
+dOF
lpM
byx
aJN
@@ -243925,32 +246261,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
@@ -243963,13 +246299,13 @@ uYO
rOe
gka
bln
+mQb
+mQb
+lSu
+lSu
+mQb
bln
-bln
-bln
-bln
-bln
-tCr
-bln
+chb
bln
bln
bln
@@ -244114,7 +246450,7 @@ nmq
kqG
pVL
pVL
-sDl
+jbe
sDl
sDl
skl
@@ -244132,12 +246468,12 @@ wVD
uja
uja
uja
-bsn
+iyJ
uja
uja
uja
uja
-vdO
+uHN
vrX
utR
pAZ
@@ -244145,7 +246481,7 @@ eAu
hFr
qWZ
oVR
-sNQ
+lfo
oVR
lpM
dbs
@@ -244172,7 +246508,7 @@ vXh
cvS
ewi
cvS
-eUI
+svV
kwX
gDp
egp
@@ -244182,7 +246518,7 @@ pJQ
pJQ
pJQ
keP
-tJv
+vei
bTx
nvW
xxs
@@ -244190,9 +246526,9 @@ bID
bID
bID
bID
-cfT
-kvH
-uIz
+nnp
+res
+eLM
bID
bID
bID
@@ -244206,10 +246542,10 @@ gyR
gyR
gyR
aPD
-wqc
+lQe
umz
sbK
-wij
+tOk
gka
gka
gka
@@ -244219,15 +246555,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
@@ -244381,29 +246717,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
@@ -244418,7 +246754,7 @@ sIt
sIt
sIt
log
-aTG
+kpA
hGh
raf
raf
@@ -244428,7 +246764,7 @@ iuv
pDi
cvS
cGA
-rgi
+cGA
pNq
lBS
aTp
@@ -244467,23 +246803,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
@@ -244637,18 +246973,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
@@ -244658,11 +246994,11 @@ pAZ
bln
lBD
pAZ
-mDv
-sUi
-tEd
+hZf
+rYE
+xUg
lpM
-eEC
+luk
aTw
iFL
hpe
@@ -244674,7 +247010,7 @@ dGU
wdg
bVv
wdg
-sTV
+ukR
pwf
oUL
qKz
@@ -244707,7 +247043,7 @@ uAK
wSo
wSo
vZt
-iHm
+qhI
rXe
hHN
bJD
@@ -244732,16 +247068,16 @@ lzy
sEB
sEB
sEB
+xhA
bln
bln
+uer
bln
bln
-tCr
-tCr
-tCr
-tCr
bln
bln
+chb
+uer
bln
bln
bln
@@ -244895,14 +247231,14 @@ skl
ddr
ccp
ygB
-kCb
+vrD
gya
tfO
urd
xTU
uja
aty
-gjT
+pBs
uja
uja
uja
@@ -244933,11 +247269,11 @@ sIt
sIt
log
mhQ
-rXN
+pOH
mhQ
mhQ
mhQ
-dnq
+rLl
jtE
vXh
cvS
@@ -244946,7 +247282,7 @@ bRH
caZ
hgK
caZ
-gDp
+rqN
btg
pGo
uoE
@@ -244958,7 +247294,7 @@ jlV
hHN
hHN
iRw
-cYf
+vuf
bSG
uop
tHj
@@ -244981,26 +247317,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
@@ -245141,13 +247477,13 @@ lbk
sDl
sDl
skl
-yhL
+vaW
deY
skl
gDz
xlH
kbN
-dym
+nzn
skl
ygB
ygB
@@ -245159,25 +247495,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
@@ -245186,12 +247522,12 @@ ccs
amN
hHu
tZZ
-vBh
-vBh
-dqs
+mfW
+mfW
+oyY
aVw
gxq
-rlb
+aVw
vBh
vBh
vBh
@@ -245203,7 +247539,7 @@ iGa
caZ
vpR
caZ
-oDk
+sqN
kRP
fwO
fwO
@@ -245219,7 +247555,7 @@ cEw
cEw
cEw
cEw
-rII
+woc
fwq
hHN
lRR
@@ -245243,21 +247579,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
@@ -245388,7 +247724,7 @@ ihb
bnM
iRM
kkl
-tAK
+xiq
gUs
ykw
lbk
@@ -245412,18 +247748,18 @@ ygB
ybE
eKJ
ulk
-rgM
+ugZ
uja
uja
uja
-jnh
+kqP
uja
uja
uja
hsB
uja
-uuh
-lyh
+ehq
+kOq
iuv
vrX
iuv
@@ -245432,7 +247768,7 @@ iuv
iuv
iuv
vrX
-maX
+uJN
iuv
xNF
ylU
@@ -245445,7 +247781,7 @@ iuv
iuv
iuv
iuv
-rpG
+uJN
iuv
iuv
iuv
@@ -245474,7 +247810,7 @@ dUv
cEw
rLs
xUV
-xmL
+rLs
cEw
cmJ
rwC
@@ -245500,21 +247836,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
@@ -245665,44 +248001,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
@@ -245757,19 +248093,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
@@ -245912,33 +248248,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
@@ -245948,9 +248284,9 @@ hmb
hmb
exw
tLF
-gIf
-dBA
-gIf
+lFb
+qRE
+lFb
azw
azw
mao
@@ -246014,20 +248350,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
@@ -246169,60 +248505,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
@@ -246270,20 +248606,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
@@ -246348,7 +248684,7 @@ wNO
wNO
wNO
bln
-aaX
+qzn
vbG
tkU
tkU
@@ -246420,7 +248756,7 @@ fhu
bLI
ykw
skl
-blX
+ugA
deY
skl
kQE
@@ -246431,15 +248767,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
@@ -246450,18 +248786,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
@@ -246470,7 +248806,7 @@ rEp
fTC
blU
azw
-eul
+bbO
hhT
vnN
pQp
@@ -246519,9 +248855,9 @@ qwF
qwF
qwF
wYJ
-bln
-bln
-bln
+sEB
+sEB
+sEB
kUu
bln
bln
@@ -246530,19 +248866,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
@@ -246605,7 +248941,7 @@ wNO
wNO
wNO
bln
-fhB
+liV
vbG
tkU
tkU
@@ -246677,48 +249013,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
@@ -246727,7 +249063,7 @@ feU
fTC
qEj
azw
-tJV
+rUQ
orE
aTE
hMH
@@ -246776,27 +249112,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
@@ -246933,56 +249269,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
@@ -247032,30 +249368,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
@@ -247195,60 +249531,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
@@ -247280,7 +249616,7 @@ xGM
gHl
flH
afR
-rPn
+iVg
kqq
cnq
nqb
@@ -247289,29 +249625,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
@@ -247452,44 +249788,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
@@ -247504,7 +249840,7 @@ tdE
fBR
fKi
tHr
-euR
+rRA
soK
kRP
nMN
@@ -247546,11 +249882,11 @@ qwF
qwF
qwF
qwF
-bln
-bln
-bln
-bln
-czY
+sEB
+sEB
+sEB
+sEB
+fdb
bln
bln
bln
@@ -247558,18 +249894,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
@@ -247709,43 +250045,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
@@ -247758,7 +250094,7 @@ azw
fVK
rGw
azw
-eiY
+ePT
tZm
pBA
aQZ
@@ -247771,7 +250107,7 @@ esC
eUI
kRP
qyR
-bve
+qyR
kRP
gDp
cvS
@@ -247800,32 +250136,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
@@ -247964,46 +250300,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
@@ -248017,7 +250353,7 @@ sEz
jFZ
uoV
gnb
-gTi
+pZB
whh
pQL
nCV
@@ -248027,7 +250363,7 @@ kRP
kRP
kRP
kRP
-qyR
+wCI
qyR
kRP
gDp
@@ -248054,34 +250390,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
@@ -248222,55 +250558,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
@@ -248281,8 +250617,8 @@ art
tHr
tHr
tHr
-bpZ
-chW
+xDX
+qkR
pBA
xfb
dpB
@@ -248311,36 +250647,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
@@ -248482,9 +250818,9 @@ bln
bln
bln
skl
-fpF
+cwH
deY
-hJF
+ugA
skl
skl
skl
@@ -248492,44 +250828,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
@@ -248537,12 +250873,12 @@ eHg
ahL
wVw
xyy
-bCr
+whU
bYK
srn
pBA
drH
-vSx
+tNz
kRP
gDp
cvS
@@ -248568,37 +250904,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
@@ -248737,11 +251073,11 @@ bln
fsm
bln
uer
-yjo
+bln
skl
skl
-qiL
-qiL
+qFA
+qFA
skl
fsm
tlH
@@ -248757,34 +251093,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
@@ -248827,32 +251163,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
@@ -248995,12 +251331,12 @@ bln
bln
stJ
bln
-bln
+qtD
skl
-qjn
-iRa
+wMY
+lWG
skl
-tlH
+oFc
tlH
dGO
knl
@@ -249014,31 +251350,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
@@ -249050,7 +251386,7 @@ juw
nji
tkf
ikz
-oSQ
+vyW
tHr
pBA
pBA
@@ -249060,7 +251396,7 @@ jbC
kRP
gDp
cvS
-sEB
+rsh
qwF
qwF
qwF
@@ -249082,39 +251418,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
@@ -249178,7 +251514,7 @@ bln
bln
lBD
bln
-rST
+xZq
bln
bln
qRv
@@ -249188,7 +251524,7 @@ hHG
wNO
wNO
wNO
-khz
+pUa
wNO
wNO
wNO
@@ -249253,10 +251589,10 @@ bln
bln
bln
bln
-gbM
-iRa
-iRa
-gbM
+bxS
+lWG
+lWG
+bxS
tlH
tlH
dGO
@@ -249272,36 +251608,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
@@ -249349,28 +251685,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
@@ -249439,10 +251775,10 @@ lBD
bln
bln
bln
-xDQ
-xDQ
+wDS
+wDS
bln
-khz
+pUa
wNO
wNO
wNO
@@ -249510,10 +251846,10 @@ bln
bln
tlH
tlH
-gbM
-iRa
-iRa
-gbM
+bxS
+lWG
+lWG
+bxS
tlH
tlH
dGO
@@ -249529,36 +251865,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
@@ -249582,7 +251918,7 @@ lvG
cvS
cvS
lvG
-bVZ
+cvS
tYZ
kRP
wOn
@@ -249598,35 +251934,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
@@ -249635,7 +251971,7 @@ ghY
ccw
cQL
pbs
-xHY
+uvu
bPc
ptY
ptY
@@ -249643,7 +251979,7 @@ ptY
ptY
ptY
ptY
-vyt
+dLL
vyt
vyt
vyt
@@ -249696,8 +252032,8 @@ lBD
bln
lBD
bln
-wUD
-wUD
+vOy
+vOy
bln
wNO
wNO
@@ -249767,10 +252103,10 @@ bln
tlH
tlH
tlH
-uUq
-gHL
-iRa
-gbM
+aDM
+aEj
+lWG
+bxS
tlH
tlH
gmW
@@ -249785,28 +252121,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
@@ -249815,7 +252151,7 @@ lUb
vWm
pbW
sco
-amJ
+iBo
lzM
wbw
ddu
@@ -249840,20 +252176,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
@@ -249863,7 +252199,7 @@ gRI
lwd
mka
wvI
-msd
+rnp
wvI
bln
bln
@@ -249874,11 +252210,11 @@ bln
bln
bln
bln
-bln
+lSu
bln
sdr
dZX
-nto
+gpB
ote
swF
swF
@@ -249895,7 +252231,7 @@ uVp
sTx
vyt
vyt
-yfT
+vyt
vyt
vyt
vyt
@@ -249953,8 +252289,8 @@ bln
bln
lBD
lBD
-wUD
-wUD
+vOy
+vOy
bln
wNO
wNO
@@ -250024,10 +252360,10 @@ bln
tlH
tlH
tlH
-uUq
-gHL
-gHL
-uUq
+aDM
+aEj
+aEj
+aDM
tlH
tlH
dGO
@@ -250042,32 +252378,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
@@ -250084,7 +252420,7 @@ hRH
dXi
mmh
ikz
-piI
+hTx
cvS
kRP
kRP
@@ -250109,7 +252445,7 @@ vXv
hGs
gOY
ylM
-vep
+wvI
jWt
cXV
nDq
@@ -250118,25 +252454,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
@@ -250210,8 +252546,8 @@ lBD
lBD
bln
bln
-wUD
-wUD
+vOy
+vOy
bln
wNO
wNO
@@ -250281,10 +252617,10 @@ bln
bln
tlH
bln
-uUq
-gHL
-gHL
-uUq
+aDM
+aEj
+aEj
+aDM
tlH
tlH
dGO
@@ -250301,26 +252637,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
@@ -250356,7 +252692,7 @@ uep
vsZ
hnd
kRP
-lop
+wCN
don
gJs
gJs
@@ -250366,7 +252702,7 @@ iJK
ebr
bzE
pMq
-vep
+wvI
bHu
cAu
xwc
@@ -250374,17 +252710,17 @@ raA
vRC
nSw
qUu
-qUu
+imJ
fvR
kiE
fTB
pwF
+mQb
+mQb
bln
bln
bln
-bln
-bln
-bln
+uer
bln
bln
bln
@@ -250467,8 +252803,8 @@ bln
lBD
bln
bln
-rPp
-rPp
+dTI
+dTI
bln
wNO
wNO
@@ -250537,12 +252873,12 @@ bln
bln
bln
bln
-bln
+qtD
kKL
-oEC
-gHL
+cMr
+aEj
kKL
-tlH
+oFc
tlH
dGO
knl
@@ -250556,38 +252892,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
@@ -250604,7 +252940,7 @@ vSY
ubq
lfL
gdz
-isP
+iPz
cwu
kRP
kRP
@@ -250614,7 +252950,7 @@ hlp
cGA
kRP
npD
-wfu
+npD
npD
npD
gGj
@@ -250643,11 +252979,11 @@ bln
bln
bln
bln
-bln
-bln
-bln
+ntK
+mQb
+mQb
dZX
-kJI
+vGw
fgU
hPe
vMA
@@ -250659,7 +252995,7 @@ fQu
aiY
pnR
xfg
-rjH
+uza
iAk
aRD
hHb
@@ -250678,7 +253014,7 @@ euc
ujs
mYh
ogF
-lIK
+hfy
uBi
uBi
lqz
@@ -250723,14 +253059,14 @@ lBD
bln
bln
bln
-kPS
+dHF
hHG
hHG
hHG
-khz
+pUa
wNO
wNO
-khz
+pUa
wNO
wNO
wNO
@@ -250793,11 +253129,11 @@ wNO
bln
bln
fsm
-yjo
+bln
kKL
kKL
-odZ
-odZ
+wsr
+wsr
kKL
tlH
tlH
@@ -250814,40 +253150,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
@@ -250857,7 +253193,7 @@ lwQ
bEL
lwQ
qQp
-bXT
+gGI
isP
ePi
rdG
@@ -250865,7 +253201,7 @@ vQP
rdG
jzY
xlh
-jQt
+hKY
uep
uep
uep
@@ -250879,9 +253215,9 @@ noR
wDg
rqD
wDg
-uin
-vep
-xEL
+edw
+wvI
+ksb
xyT
jvR
fFC
@@ -250889,7 +253225,7 @@ nnn
iIs
iDQ
msN
-gVC
+drK
lyH
isu
lmy
@@ -250901,8 +253237,8 @@ bln
bln
bln
bln
-bln
-bln
+uer
+mQb
dZX
lIW
fgU
@@ -250918,7 +253254,7 @@ frq
rlS
cfe
mXi
-nDz
+mzZ
mRI
bLz
bLz
@@ -251052,9 +253388,9 @@ bln
efv
bln
kKL
-xIh
+uUp
lli
-eEr
+sQS
kKL
kKL
kKL
@@ -251062,60 +253398,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
-cmd
-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
@@ -251137,15 +253473,15 @@ lmA
oqc
oAD
xKX
-vep
+wvI
pBI
sCm
-gGo
-bTQ
-xAm
-qSC
-ldr
-oOx
+xFf
+kdC
+kRw
+fUW
+jeR
+pMN
mgD
oKL
elT
@@ -251159,21 +253495,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
@@ -251186,8 +253522,8 @@ pza
pza
pza
pza
-rcO
-wLK
+iHp
+cFM
mEx
ujs
mYh
@@ -251310,54 +253646,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
@@ -251367,7 +253703,7 @@ laD
xPv
mGO
tAx
-wbN
+qOj
grT
lEo
shy
@@ -251388,7 +253724,7 @@ sZF
sZF
wDK
npD
-tZG
+cbC
nZH
xbC
dPj
@@ -251398,30 +253734,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
@@ -251548,73 +253884,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
@@ -251624,10 +253960,10 @@ lCC
iKl
iKl
xyc
-dVw
+sPJ
bkV
ree
-mpR
+lOV
qQp
tQc
jbx
@@ -251637,12 +253973,12 @@ tQc
tQc
qQp
hRA
-lal
+dBb
rkL
cga
api
sZF
-sKf
+tKH
wRr
npD
cmw
@@ -251650,29 +253986,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
@@ -251680,6 +254014,8 @@ bln
bln
bln
bln
+mQb
+mQb
swF
jsq
ben
@@ -251805,8 +254141,7 @@ wNO
wNO
wNO
wNO
-ngh
-bln
+chb
bln
bln
bln
@@ -251815,50 +254150,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
-nsH
-vrw
-jlT
+ehL
+aBP
+ofl
lso
qEM
xwz
@@ -251873,13 +254209,13 @@ gOb
gOb
aSo
aSo
-cCD
+gLn
sZD
lnC
klc
lDM
-kNa
-ica
+dVS
+bAj
lDM
klc
rWR
@@ -251892,40 +254228,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
@@ -251933,7 +254263,13 @@ bln
bln
bln
bln
+uer
+mQb
+mQb
bln
+mQb
+uer
+mQb
bln
bln
bln
@@ -251951,7 +254287,7 @@ wSw
fPZ
itl
tQM
-koX
+itl
itl
qCU
vyt
@@ -252062,8 +254398,8 @@ wNO
wNO
wNO
wNO
-ngh
-bln
+chb
+mQb
uei
tmR
uei
@@ -252078,11 +254414,11 @@ uei
bln
bln
kKL
-aPP
+enY
kKL
kKL
-jRt
-fTn
+eRf
+lfU
kKL
kKL
kKL
@@ -252092,30 +254428,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
@@ -252128,15 +254464,15 @@ lQG
oxU
pxX
bCf
-kmf
-qOW
-hDC
+wor
+wor
+mfX
sZD
vgx
lDM
-pjZ
-vzN
-oXq
+dxO
+omo
+jdm
xWT
klc
uiF
@@ -252156,44 +254492,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
@@ -252205,7 +254541,7 @@ kCV
bkr
qOy
pbs
-rAL
+nZN
qMH
ptY
ptY
@@ -252213,7 +254549,7 @@ ptY
ptY
ptY
ptY
-vyt
+dLL
vyt
vyt
vyt
@@ -252319,8 +254655,8 @@ wNO
wNO
wNO
wNO
-vHT
-bln
+sAd
+tMa
uei
tmR
uei
@@ -252335,47 +254671,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
@@ -252387,16 +254723,16 @@ rZR
bCf
wor
wor
-kqN
+qxG
vFW
noW
-uvi
+nOh
bNH
bNH
rIc
-tVB
+gpR
klc
-tDA
+ooy
gsT
eDH
iYs
@@ -252406,54 +254742,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
@@ -252576,7 +254912,7 @@ wNO
wNO
wNO
wNO
-ngh
+chb
bln
uei
tmR
@@ -252585,7 +254921,7 @@ bln
uei
tmR
uei
-bln
+mQb
uei
tmR
uei
@@ -252593,49 +254929,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
@@ -252644,14 +254980,14 @@ cgs
bCf
wor
wor
-apt
+kjP
amE
vgx
lDM
-kAZ
+oXq
gUg
amv
-cTJ
+sxs
klc
aSo
aSo
@@ -252670,24 +255006,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
@@ -252698,7 +255034,7 @@ iAf
iAf
iAf
bln
-bln
+fPc
bln
bln
bln
@@ -252833,7 +255169,7 @@ wNO
wNO
wNO
wNO
-ngh
+chb
bln
uei
tmR
@@ -252842,7 +255178,7 @@ bln
uei
tmR
uei
-bln
+mQb
uei
tmR
uei
@@ -252856,8 +255192,8 @@ mMb
kKL
kKL
kKL
-qUo
-pjM
+fsJ
+ekj
nLY
lli
gAt
@@ -252865,29 +255201,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
@@ -252914,7 +255250,7 @@ dDw
qHz
ekE
fzo
-czF
+fGY
qaU
jtH
qpb
@@ -252927,16 +255263,16 @@ jDc
tMO
nMb
sZF
-qwO
+oGN
wRr
npD
ebr
hcG
-bEH
+nZH
npD
vtr
-mmC
-iQw
+giv
+aQj
dFA
oMs
sZF
@@ -252944,8 +255280,8 @@ eZu
vjZ
bln
bln
-bln
-bln
+mQb
+mQb
bln
bln
bln
@@ -253087,10 +255423,10 @@ wNO
wNO
wNO
wNO
-reu
-xog
-xog
-raq
+hAM
+kdS
+kdS
+nyZ
bln
uei
tmR
@@ -253116,33 +255452,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
@@ -253162,7 +255498,7 @@ ubk
ndJ
rHz
fdY
-xuM
+vjN
wXh
xCQ
ufN
@@ -253176,7 +255512,7 @@ nmC
cEo
kQJ
mFE
-dRe
+bdT
bsi
cmy
nAN
@@ -253184,21 +255520,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
@@ -253213,7 +255549,7 @@ weR
lQO
hJD
iAf
-bln
+mQb
bln
wNO
wNO
@@ -253344,7 +255680,7 @@ wNO
wNO
wNO
wNO
-ngh
+chb
bln
bln
bln
@@ -253352,7 +255688,7 @@ bln
bln
tmR
bln
-bln
+mQb
bln
tmR
bln
@@ -253367,41 +255703,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
@@ -253409,11 +255745,11 @@ vBG
wvW
moG
vBG
-ayR
+rWg
oMR
-hsC
+cNL
vBG
-uSS
+eTY
xrb
qhN
amE
@@ -253422,16 +255758,16 @@ klc
pgY
hXU
oRu
-hIe
+ccR
uKj
dDw
-fWn
+fsz
qgu
tYA
vds
mrD
liz
-rKX
+txH
mFE
nEc
klk
@@ -253441,27 +255777,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
@@ -253601,8 +255937,8 @@ wNO
wNO
wNO
wNO
-wHr
-bln
+sAd
+ftY
cnx
tmR
tmR
@@ -253627,24 +255963,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
@@ -253663,16 +255999,16 @@ vwO
mqq
ivB
vBG
-loG
-iOu
+dxq
+jAG
sZF
sZF
-puB
+jbf
sZF
sZF
sxw
ayI
-ktD
+jdA
mSM
ozN
sZF
@@ -253685,10 +256021,10 @@ sZF
fLQ
mjH
qLy
-obr
-xMM
+vds
+iCj
nqd
-ttO
+eUN
mFE
fil
pWY
@@ -253698,34 +256034,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
@@ -253858,8 +256194,8 @@ wNO
wNO
wNO
wNO
-ngh
-bln
+chb
+mQb
bln
bln
bln
@@ -253881,7 +256217,7 @@ bln
sEB
acE
acE
-het
+acE
lQf
swt
xTp
@@ -253889,41 +256225,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
@@ -253931,7 +256267,7 @@ sZF
sZF
sZF
lpC
-uWp
+sZF
sZF
pwV
pwV
@@ -253957,32 +256293,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
@@ -254115,15 +256451,15 @@ wNO
wNO
wNO
wNO
-dqA
-jas
-jas
-nIe
+fYT
+kdS
+kdS
+wSp
bln
uei
tmR
uei
-bln
+mQb
uei
tmR
uei
@@ -254149,7 +256485,7 @@ bqe
gxh
kKL
hOu
-hfG
+pEc
hJx
lli
fAF
@@ -254158,7 +256494,7 @@ kKL
mMb
mMb
kKL
-cjh
+xds
kKL
mMb
mMb
@@ -254174,7 +256510,7 @@ kKL
xcy
rvZ
hUx
-veq
+cie
aLX
vng
gNT
@@ -254190,7 +256526,7 @@ xwM
daR
mQg
lRW
-hkt
+qDm
hkt
hkt
hkt
@@ -254209,28 +256545,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
-osn
+skI
osn
-cmv
+nzN
ktf
sZF
bln
-bln
-bln
+mQb
+mQb
bln
bln
bln
@@ -254240,7 +256576,7 @@ jAQ
iAf
iAf
bln
-bln
+mQb
bln
bln
wNO
@@ -254375,7 +256711,7 @@ wNO
wNO
wNO
wNO
-ngh
+chb
bln
uei
tmR
@@ -254403,47 +256739,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
@@ -254459,32 +256795,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
@@ -254493,11 +256830,10 @@ bln
bln
bln
bln
+fPc
+mQb
bln
-bln
-bln
-bln
-bln
+mQb
bln
bln
wNO
@@ -254632,12 +256968,12 @@ wNO
wNO
wNO
wNO
-ngh
-bln
+chb
+mQb
uei
tmR
uei
-bln
+mQb
uei
tmR
uei
@@ -254663,16 +256999,16 @@ qqB
gxh
kKL
weF
-hfG
+pEc
kKL
moF
cjI
kKL
pQa
-erq
-erq
-oPw
-srU
+wWo
+wWo
+oPO
+jPq
xWM
kKL
kKL
@@ -254682,18 +257018,18 @@ kKL
kKL
kKL
kKL
-nLs
+meZ
aJG
sQE
hwE
hwE
cMe
-veq
+cie
uvt
tlP
wIg
vzX
-bJJ
+gAz
cyX
sZF
npD
@@ -254701,7 +257037,8 @@ npD
npD
npD
npD
-mSv
+hTu
+npD
npD
npD
npD
@@ -254719,8 +257056,7 @@ npD
npD
npD
npD
-tvx
-qNX
+gDE
npD
npD
npD
@@ -254746,14 +257082,14 @@ bln
bln
uer
bln
+mQb
bln
bln
bln
bln
-bln
-bln
-bln
-bln
+yfW
+mQb
+uer
bln
bln
bln
@@ -254889,8 +257225,8 @@ wNO
wNO
wNO
bln
-vHT
-bln
+sAd
+tMa
uei
tmR
uei
@@ -254920,12 +257256,12 @@ hJx
qFW
kKL
hOu
-hfG
+pEc
hJx
mzM
hUi
kKL
-uar
+eqP
unu
kKL
kKL
@@ -254939,13 +257275,13 @@ jSC
bdS
dtb
hUD
-bOh
+nNi
rvZ
lso
lso
rCu
cYE
-tCG
+hZT
idi
cZU
kBl
@@ -254957,8 +257293,8 @@ awK
ppQ
mrA
mtI
-axc
-wgR
+dAh
+mYp
owC
tsr
moL
@@ -254967,12 +257303,12 @@ wHc
aEA
dng
dAB
-ubh
-ubh
-ubh
-ubh
-ubh
-ubh
+rHi
+rHi
+rHi
+rHi
+rHi
+rHi
qLY
pnA
qFp
@@ -255000,15 +257336,15 @@ pHR
wEV
vjZ
bln
+mQb
bln
bln
+mQb
+mQb
bln
-bln
-bln
-bln
-bln
-bln
+mQb
uer
+fPc
bln
bln
bln
@@ -255146,7 +257482,7 @@ wNO
wNO
wNO
bln
-vnS
+uap
bln
uei
tmR
@@ -255177,13 +257513,13 @@ lli
gxh
kKL
kKL
-hfG
+pEc
kKL
kKL
kKL
kKL
kIl
-nNI
+cqN
kKL
eIk
xry
@@ -255198,11 +257534,11 @@ qMm
hUD
sOH
hUx
-rek
+igt
rek
hUx
rNQ
-tCG
+hZT
idi
aID
gky
@@ -255212,24 +257548,24 @@ cgZ
uvt
iBa
pra
-dyW
+axZ
mtI
lUf
keZ
owC
-jIP
+pXt
qOH
-veX
+jIP
wHc
-fPO
+sgL
pTU
itt
-ubh
-ubh
-ubh
-ubh
-ubh
-ubh
+rHi
+rHi
+rHi
+rHi
+rHi
+rHi
qLY
baF
fvk
@@ -255258,16 +257594,16 @@ wEV
vjZ
bln
bln
+mQb
bln
bln
+mQb
bln
+mQb
bln
-bln
-bln
-bln
-bln
-bln
-bln
+fPc
+mQb
+mQb
bln
bln
bln
@@ -255403,7 +257739,7 @@ wNO
wNO
wNO
bln
-ngh
+chb
bln
bln
bln
@@ -255455,11 +257791,11 @@ qMm
hUD
pyJ
lPh
-rBp
+aJj
hUD
ebb
cYE
-tCG
+hZT
idi
aID
ddk
@@ -255474,19 +257810,19 @@ mtI
uxj
eNK
owC
-wAx
+xGA
jTZ
-ftt
+xGA
wHc
-oMT
+xKk
emK
uvU
-ubh
-ubh
-ubh
-ubh
-ubh
-ubh
+rHi
+rHi
+rHi
+rHi
+rHi
+rHi
qLY
oCA
fvk
@@ -255507,22 +257843,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
@@ -255660,28 +257996,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
@@ -255714,9 +258050,9 @@ nVr
wFO
bzA
hUD
-lso
+eaT
byK
-hMs
+sDd
bRd
fqQ
wIg
@@ -255755,13 +258091,13 @@ hfc
ocD
diL
qVz
-pNY
-edp
-dcr
-aRl
-bCL
-ofr
-sBx
+luD
+tfl
+dXI
+pTT
+eLm
+jVs
+hfc
hfc
jCE
adY
@@ -255770,19 +258106,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
@@ -255955,7 +258291,7 @@ kKL
kKL
gkP
kKL
-wKY
+ilq
eSn
bJQ
qCA
@@ -255973,7 +258309,7 @@ vfo
hUD
lso
cYE
-nYY
+fkw
ult
bsG
wGF
@@ -255998,7 +258334,7 @@ mfV
xpA
uHc
cpg
-gUX
+gRA
cpg
cdl
pMF
@@ -256014,11 +258350,11 @@ dbr
aFJ
xJj
xJj
-lvh
+klW
iVT
ogl
-ffz
-bzB
+eyR
+goe
diL
vTJ
apT
@@ -256027,20 +258363,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
@@ -256212,7 +258548,7 @@ nqn
kKL
gkP
kKL
-yfY
+tgv
huB
ogd
hff
@@ -256230,7 +258566,7 @@ cLJ
iQQ
lso
cYE
-uIS
+gAZ
ult
wjz
tXh
@@ -256242,7 +258578,7 @@ pKJ
rIU
tLM
mtI
-vtA
+nRX
sfY
owC
bYS
@@ -256256,7 +258592,7 @@ jbU
jbU
jbU
jbU
-bFr
+bkQ
drr
qhL
qhL
@@ -256286,18 +258622,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
@@ -256465,11 +258801,11 @@ tml
kKL
kLb
qpd
-oNy
+obl
kKL
gkP
kKL
-flV
+sTA
ivH
lVF
pup
@@ -256487,7 +258823,7 @@ bwl
hUD
uff
cYE
-hXt
+gAZ
ult
hpC
rIU
@@ -256497,10 +258833,10 @@ irA
uzi
pdy
fiS
-uTL
+agJ
mtI
-nRX
-jVL
+vtA
+muP
owC
owC
owC
@@ -256509,8 +258845,8 @@ wHc
mYq
nyH
lFW
-rEd
-pZA
+jzH
+mde
gSN
jbU
wnX
@@ -256520,10 +258856,10 @@ pvB
ehd
ehd
ehd
-wmX
+ehd
ooo
rtn
-qEv
+huq
vDu
lva
lva
@@ -256542,15 +258878,15 @@ pHR
wEV
vjZ
bln
+uer
bln
+mQb
+mQb
+mQb
bln
bln
bln
-bln
-bln
-bln
-bln
-bln
+yfW
bln
bln
bln
@@ -256731,7 +259067,7 @@ bla
sil
hUD
hUD
-fgm
+pGT
qok
iZn
xzd
@@ -256744,7 +259080,7 @@ wND
iQQ
rvZ
cYE
-uIS
+aPl
ult
vuq
tfM
@@ -256777,13 +259113,13 @@ wve
hfc
hfc
hfc
-iWI
-kRI
-nXp
-gvM
-kva
-oXT
-uPa
+mns
+hEP
+wGt
+dAl
+hWt
+ocJ
+mBs
ccQ
aCb
wAY
@@ -256799,6 +259135,7 @@ pHR
wEV
sZF
bln
+mQb
bln
bln
bln
@@ -256806,9 +259143,8 @@ bln
bln
bln
bln
-bln
-bln
-bln
+fPc
+mQb
bln
bln
bln
@@ -256987,7 +259323,7 @@ kCg
gjc
bLQ
vaE
-tSt
+hUD
hUD
hUD
hUD
@@ -256999,9 +259335,9 @@ sEi
sEi
naP
hUD
-jed
-iIk
-jed
+tRo
+iQa
+tRo
ult
ult
wBk
@@ -257027,7 +259363,7 @@ gaT
bZc
qlO
jbU
-ily
+hzb
hdH
qhL
dkK
@@ -257049,25 +259385,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
@@ -257240,13 +259576,13 @@ lIC
lli
unu
kKL
-hno
+nMT
poy
poy
-vvJ
+nRV
hUD
-ybr
-bpL
+ygf
+dsZ
pIw
hUD
ktz
@@ -257259,7 +259595,7 @@ iQQ
lso
rNQ
lso
-aop
+pkg
yar
mdl
rIU
@@ -257280,9 +259616,9 @@ jbU
pEE
cAG
nbq
-hAq
-nDB
-nfW
+iNY
+kiQ
+xGK
jbU
lhu
hdH
@@ -257313,8 +259649,8 @@ wRr
wEV
vjZ
bln
-bln
-bln
+uer
+mQb
bln
bln
vzD
@@ -257322,8 +259658,8 @@ oIR
vzD
jCl
kir
-sEB
-bln
+qVo
+lSu
bln
bln
bln
@@ -257497,7 +259833,7 @@ bcC
eFO
unu
kKL
-hno
+tUO
poy
poy
vvJ
@@ -257517,7 +259853,7 @@ dFO
cYE
lso
hDb
-azU
+exm
nIl
nVC
abM
@@ -257534,10 +259870,10 @@ ujP
htO
sqn
jbU
-iyP
+gEy
dUe
ank
-wgH
+baX
fUM
wlW
jbU
@@ -257570,17 +259906,17 @@ wRr
sKf
vjZ
bln
-bln
-bln
-bln
+mQb
+mQb
+mQb
bln
vzD
vzD
vzD
kir
vzD
-sEB
-bln
+rwt
+mQb
bln
bln
bln
@@ -257754,12 +260090,12 @@ weF
fMc
aME
kKL
-qLf
+kIr
poy
poy
-lNk
+tav
hUD
-nbL
+uZu
rGd
whC
hUD
@@ -257779,8 +260115,8 @@ gqK
nxU
gjg
dxg
-gJi
-fVC
+ivG
+aYi
dkr
cHQ
jDm
@@ -257794,11 +260130,11 @@ jbU
anP
cRK
uMK
-udQ
+rep
oMT
-qwJ
+ppz
jbU
-whc
+uQR
iZQ
llw
aus
@@ -257836,9 +260172,9 @@ ydh
dFG
uZc
gQw
+mQb
bln
-bln
-bln
+lSu
bln
bln
wNO
@@ -258011,7 +260347,7 @@ nLY
lli
aME
kKL
-ttv
+ptS
poy
poy
hUe
@@ -258054,23 +260390,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
@@ -258093,9 +260429,9 @@ uZc
cDk
sGZ
gQw
-bln
-bln
-bln
+mQb
+mQb
+lSu
bln
bln
wNO
@@ -258260,15 +260596,15 @@ iwO
uYR
kKL
kKL
-tfu
+kKL
aMa
-tfu
kKL
kKL
-xUT
+kKL
+iVD
uZn
kKL
-ttv
+ptS
prg
prg
caY
@@ -258279,7 +260615,7 @@ gEE
gEE
gEE
oNC
-gEE
+nmD
gEE
gEE
tva
@@ -258293,7 +260629,7 @@ sxZ
oOo
xvy
wLl
-axc
+tKD
oLg
eLr
wtT
@@ -258301,10 +260637,10 @@ mbK
jQS
eNK
aYJ
-sSz
+jpN
aYJ
aYJ
-bXL
+dwZ
eLr
eaa
via
@@ -258312,15 +260648,15 @@ aYJ
lAw
aYJ
aYJ
-aYJ
+wib
eLr
hAm
via
via
tPz
iRN
-via
-ojP
+odR
+leo
qFt
pTY
lcu
@@ -258351,7 +260687,7 @@ gTq
fNa
gQw
bln
-bln
+mQb
bln
bln
bln
@@ -258525,9 +260861,9 @@ kKL
pzV
uZn
kKL
-xXU
-spW
-kVE
+jbz
+nKb
+god
xse
iQQ
gEE
@@ -258550,7 +260886,7 @@ pJV
mZG
mZG
qEZ
-axc
+urk
dFW
aYJ
aYJ
@@ -258558,7 +260894,7 @@ aYJ
aYJ
wUt
urK
-xjU
+mNt
nJT
urK
urK
@@ -258576,8 +260912,8 @@ pJV
pJV
pJV
aYJ
-aYJ
-sSE
+cTR
+leo
wOX
efk
jTr
@@ -258608,6 +260944,7 @@ gQw
gQw
vzD
bln
+lSu
bln
bln
bln
@@ -258670,7 +261007,6 @@ wNO
wNO
wNO
wNO
-wNO
"}
(181,1,3) = {"
wNO
@@ -258773,11 +261109,11 @@ kKL
kKL
kKL
kKL
-qAS
+cDv
fUc
jaX
glI
-gZR
+mRY
kKL
kKL
mbG
@@ -258787,7 +261123,7 @@ hUD
hUD
hUD
hUD
-gEE
+cEz
gEE
gEE
gEE
@@ -258801,13 +261137,13 @@ gqj
emp
cYE
lso
-kvG
+qbp
wLl
-qXp
+qfA
uxA
pUn
wLl
-dzg
+jYF
fXr
dFj
dFj
@@ -258815,26 +261151,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
@@ -258865,13 +261201,13 @@ bln
bln
bln
bln
+lSu
+bln
+lSu
bln
bln
bln
bln
-wNO
-wNO
-wNO
wNO
wNO
wNO
@@ -259030,15 +261366,15 @@ iSQ
qji
pyD
kKL
-mqO
+gCs
fUc
sBi
xYA
ldi
lUC
-vhm
+cZc
oLG
-jbu
+eQF
oxV
oxV
jbG
@@ -259069,31 +261405,31 @@ wnT
wnT
oHK
oHK
-cbF
-dEC
+xer
+wKi
oHK
oHK
-vjj
-fLU
-rDH
-usP
-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
@@ -259119,14 +261455,12 @@ bRz
vzD
bln
bln
+mQb
bln
bln
-bln
-bln
-bln
-bln
-bln
-bln
+mQb
+uer
+lSu
bln
bln
bln
@@ -259185,6 +261519,8 @@ wNO
wNO
wNO
wNO
+wNO
+wNO
"}
(183,1,3) = {"
wNO
@@ -259317,12 +261653,12 @@ cYE
lso
pHX
nDd
-qWh
-lmY
-haQ
+soz
+faq
+ofi
snI
bZQ
-elf
+gSq
ojF
rQW
ftN
@@ -259330,26 +261666,26 @@ bxP
vvE
tJG
oHK
-goq
-goq
-rDH
-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
@@ -259374,6 +261710,10 @@ lEz
kPw
dAx
gQw
+mQb
+mQb
+uer
+mQb
bln
bln
bln
@@ -259386,11 +261726,7 @@ bln
bln
bln
bln
-bln
-bln
-bln
-bln
-bln
+wNO
wNO
wNO
wNO
@@ -259545,7 +261881,7 @@ fLb
oHh
kKL
bpQ
-bsc
+kcT
oih
dmL
lUC
@@ -259587,22 +261923,22 @@ vaA
gXJ
wgU
oHK
-pnq
-goq
-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
@@ -259631,14 +261967,13 @@ lbf
esF
bRz
gQw
+mQb
bln
bln
bln
bln
-bln
-bln
-bln
-bln
+lSu
+mQb
bln
bln
bln
@@ -259699,6 +262034,7 @@ wNO
wNO
wNO
wNO
+wNO
"}
(185,1,3) = {"
wNO
@@ -259801,11 +262137,11 @@ eOm
kKL
kKL
kKL
-dvS
+mly
pwd
glI
tsR
-gZR
+mRY
lUC
tXV
kvX
@@ -259815,7 +262151,7 @@ qrQ
wrX
wrX
wrX
-gEE
+cEz
gEE
gEE
gEE
@@ -259829,9 +262165,9 @@ urw
emp
bvI
lso
-mtT
-pLa
-jJF
+cUB
+nYm
+mNi
yeB
uuC
hDb
@@ -259846,20 +262182,20 @@ hhP
oHK
iZl
iZl
-ieb
+sVi
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
@@ -259889,14 +262225,13 @@ bRz
bVL
vzD
bln
+fsm
bln
bln
+uer
bln
bln
-bln
-bln
-bln
-bln
+lSu
bln
bln
bln
@@ -259956,6 +262291,7 @@ wNO
wNO
wNO
wNO
+wNO
"}
(186,1,3) = {"
wNO
@@ -260062,11 +262398,11 @@ pfP
apD
ugG
gIt
-fkc
+mnW
lUC
ccT
nyC
-opw
+eUz
oTA
oTA
hIN
@@ -260104,13 +262440,13 @@ aju
gPY
qWu
fbl
-foy
-krY
-awa
-awa
-awa
-awa
-jvc
+rlu
+nsZ
+mFb
+aHX
+aHX
+aHX
+xgF
awa
awa
awa
@@ -260126,7 +262462,7 @@ ihu
epH
rDZ
rDZ
-tBP
+ePu
rDZ
rDZ
bgx
@@ -260145,17 +262481,17 @@ gQw
gQw
vzD
vzD
+lSu
bln
bln
bln
+lSu
bln
bln
bln
bln
-bln
-bln
-bln
-bln
+lSu
+lSu
bln
bln
bln
@@ -260321,7 +262657,7 @@ lUC
lUC
lUC
lUC
-daX
+wrX
pxi
wrX
tLQ
@@ -260335,7 +262671,7 @@ gEE
gEE
iKQ
cpq
-gEE
+ueF
gEE
gEE
tva
@@ -260361,13 +262697,13 @@ wgO
fTT
bUa
wgL
-phB
-krY
+bhm
+nsZ
+awa
awa
awa
awa
awa
-jvc
awa
awa
awa
@@ -260377,7 +262713,7 @@ xUk
aSB
tHT
nsZ
-lHm
+vmK
oZn
sFj
rck
@@ -260398,22 +262734,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
@@ -260578,8 +262914,8 @@ tlH
tlH
tlH
nXb
-ngY
-iQt
+wrX
+tuQ
oHH
tAA
efH
@@ -260600,31 +262936,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
@@ -260634,13 +262970,13 @@ xUk
sqt
duE
nsZ
-ijW
-xsP
-rms
-sXC
+xDa
+abT
+jJZ
+tuy
rDZ
rDZ
-rnu
+mBk
rDZ
rDZ
bgx
@@ -260654,8 +262990,8 @@ vzD
bln
bln
bln
-bln
-bln
+mQb
+uer
bln
bln
bln
@@ -260670,8 +263006,8 @@ bln
bln
bln
bln
-tCr
-bln
+chn
+lSu
bln
bln
bln
@@ -260836,27 +263172,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
@@ -260873,15 +263209,15 @@ mEJ
mEJ
krY
srP
-pGp
+rou
lIk
srP
-krY
+nsZ
+awa
awa
awa
awa
awa
-jvc
awa
awa
awa
@@ -260909,10 +263245,10 @@ vzD
vrO
vzD
bln
+mQb
bln
-bln
-bln
-bln
+mQb
+mQb
bln
bln
sUN
@@ -260927,8 +263263,8 @@ sUN
tmR
sUN
bln
-tCr
-bln
+sFJ
+nwD
bln
bln
bln
@@ -261110,7 +263446,7 @@ gVt
pCI
pCI
vsM
-vns
+avc
nfB
cMJ
eBg
@@ -261118,7 +263454,7 @@ kCs
omh
peV
elw
-tZe
+oOc
nvY
qpu
oPP
@@ -261133,12 +263469,12 @@ vJS
bUa
ubY
qHn
-krY
+nsZ
+awa
awa
awa
awa
awa
-jvc
wQY
nmz
nmz
@@ -261166,11 +263502,11 @@ jCl
vpg
gQw
bln
+uer
bln
bln
-bln
-bln
-bln
+mQb
+ntK
bln
sUN
tmR
@@ -261183,8 +263519,8 @@ bln
sUN
tmR
sUN
-bln
-tCr
+hty
+uap
bln
bln
bln
@@ -261390,20 +263726,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
@@ -261422,17 +263758,17 @@ vrO
vrO
vrO
gQw
+mQb
+ntK
+mQb
bln
bln
-bln
-bln
-bln
-bln
+mQb
bln
sUN
tmR
sUN
-bln
+mQb
sUN
tmR
sUN
@@ -261441,7 +263777,7 @@ sUN
tmR
sUN
bln
-tCr
+dzZ
bln
bln
bln
@@ -261606,7 +263942,7 @@ tlH
tlH
tlH
nXb
-tlH
+oFc
tlH
tlH
tlH
@@ -261646,18 +263982,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
@@ -261681,15 +264017,15 @@ pxQ
vzD
bln
bln
+mQb
bln
bln
-bln
-bln
+uer
bln
sUN
tmR
sUN
-bln
+mQb
sUN
tmR
sUN
@@ -261698,7 +264034,7 @@ sUN
tmR
sUN
bln
-bln
+chb
bln
bln
bln
@@ -261772,7 +264108,7 @@ wNO
wNO
wNO
wNO
-khz
+pUa
wNO
vbG
hHG
@@ -261904,22 +264240,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
@@ -261955,10 +264291,10 @@ sUN
tmR
sUN
bln
-bln
-tCr
-tCr
-tCr
+rdJ
+ujK
+lej
+hAM
bln
bln
wNO
@@ -262031,14 +264367,14 @@ wNO
wNO
wNO
wNO
-kPS
+dHF
hHG
hHG
hHG
-khz
+pUa
wNO
wNO
-khz
+pUa
wNO
wNO
wNO
@@ -262128,7 +264464,7 @@ tlH
tlH
sEB
qPL
-qgn
+nbK
vXy
ixv
qPL
@@ -262161,7 +264497,7 @@ gVe
whP
mOc
gYt
-krY
+nsZ
oOb
ezJ
iba
@@ -262169,18 +264505,18 @@ gas
rjK
nlP
xTV
-imy
-dHM
+rGY
+nzA
auK
vaa
xLq
xLq
nsZ
rDZ
-pxu
+rDZ
rDZ
swa
-pxu
+rDZ
rDZ
bgx
vzD
@@ -262190,10 +264526,10 @@ vzD
geJ
sMo
bgx
-tfm
+rkH
qbh
oGm
-axy
+mJq
mJq
mJq
sEB
@@ -262207,15 +264543,15 @@ bln
bln
tmR
bln
-bln
+mQb
bln
tmR
bln
bln
+fsm
+mQb
bln
-bln
-bln
-tCr
+vap
bln
bln
wNO
@@ -262289,8 +264625,8 @@ wNO
wNO
bln
bln
-xDQ
-xDQ
+wDS
+wDS
bln
bln
bln
@@ -262407,21 +264743,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
@@ -262472,8 +264808,8 @@ tmR
tmR
cnx
bln
-tCr
-bln
+sFJ
+tMa
bln
wNO
wNO
@@ -262546,8 +264882,8 @@ wNO
wNO
bln
bln
-wUD
-wUD
+vOy
+vOy
bln
bln
bln
@@ -262664,17 +265000,17 @@ dbw
omh
sHM
elw
-sVf
+jqw
axN
qvE
nhI
hDp
elw
-uKx
+qrP
rpV
fTW
bwM
-hds
+xGx
lEv
clV
wmG
@@ -262682,12 +265018,12 @@ jLW
nkh
tLT
wvv
-fHC
+lEP
lEP
oEj
xmR
oEj
-oEj
+ohU
oEj
myO
oEj
@@ -262702,12 +265038,12 @@ oEj
xmR
oEj
dww
-dFZ
-mbT
-nBB
+ygm
+bgx
+qUQ
xQh
xCz
-mjt
+mJq
mJq
mJq
vsI
@@ -262726,10 +265062,10 @@ bln
tmR
bln
bln
+mQb
bln
bln
-bln
-tCr
+vap
bln
bln
wNO
@@ -262803,8 +265139,8 @@ wNO
wNO
bln
bln
-rPp
-rPp
+dTI
+dTI
bln
bln
bln
@@ -262897,7 +265233,7 @@ bln
bln
bln
bln
-sEB
+miY
tpd
wwI
tPY
@@ -262927,23 +265263,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
@@ -262969,7 +265305,7 @@ bln
bln
bln
bln
-bln
+mQb
bln
sUN
tmR
@@ -262983,10 +265319,10 @@ sUN
tmR
sUN
bln
-bln
-tCr
-tCr
-tCr
+cIf
+lej
+ujK
+fYT
bln
bln
wNO
@@ -263154,7 +265490,7 @@ bln
bln
bln
bln
-sEB
+miY
tpd
hOt
ejn
@@ -263174,10 +265510,10 @@ udw
jZM
sEB
omh
-amK
+jrX
omh
sED
-xSw
+gjM
upv
gjM
gjM
@@ -263186,24 +265522,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
@@ -263221,13 +265557,13 @@ bln
bln
bln
bln
+chb
+mQb
+uer
+mQb
bln
-bln
-bln
-bln
-bln
-bln
-bln
+nEa
+mQb
sUN
tmR
sUN
@@ -263240,8 +265576,8 @@ sUN
tmR
sUN
bln
-bln
-bln
+chn
+lSu
bln
bln
bln
@@ -263313,17 +265649,17 @@ wNO
wNO
wNO
wNO
-khz
+pUa
wNO
-aaX
+qzn
vbG
hHG
hHG
hHG
-khz
+pUa
wNO
wNO
-khz
+pUa
wNO
wNO
wNO
@@ -263411,22 +265747,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
@@ -263437,15 +265773,15 @@ omh
omh
omh
omh
-omh
-fTW
+cNe
+dbw
rpV
jYc
fTW
cJs
fTW
-fTW
-omh
+tlf
+pSz
elw
mWf
mWf
@@ -263453,7 +265789,7 @@ mWf
hyV
trm
bgx
-vzD
+gti
vzD
vzD
vzD
@@ -263471,24 +265807,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
@@ -263497,10 +265833,10 @@ sUN
tmR
sUN
bln
-tCr
-bln
+ebW
bln
bln
+lSu
bln
bln
wNO
@@ -263572,7 +265908,7 @@ wNO
wNO
wNO
wNO
-fhB
+liV
vbG
hHG
hHG
@@ -263668,50 +266004,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
@@ -263723,9 +266059,9 @@ bFq
jCl
nuj
jCl
-gUT
-jCl
-jCl
+mEz
+uZc
+uZc
syT
vzD
jCl
@@ -263735,12 +266071,12 @@ bln
bln
bln
bln
+chb
bln
bln
bln
bln
-bln
-bln
+mQb
bln
sUN
tmR
@@ -263749,15 +266085,15 @@ bln
sUN
tmR
sUN
-bln
+mQb
sUN
tmR
sUN
bln
-tCr
-bln
+chb
bln
bln
+lSu
bln
bln
wNO
@@ -263950,25 +266286,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
@@ -263992,12 +266328,12 @@ bln
bln
bln
bln
-bln
-bln
-bln
-bln
-bln
-mVm
+obe
+ujK
+eRE
+ujK
+ujK
+dMo
bln
sUN
tmR
@@ -264011,8 +266347,8 @@ sUN
tmR
sUN
bln
-tCr
-bln
+sFJ
+tMa
bln
bln
bln
@@ -264186,19 +266522,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
@@ -264217,13 +266553,13 @@ vJk
vJk
qbW
omh
+hZN
bln
bln
bln
bln
bln
-bln
-bln
+hZN
bln
bln
bln
@@ -264240,7 +266576,7 @@ bln
bln
bln
vzD
-caU
+lPq
vzD
bln
bln
@@ -264254,9 +266590,7 @@ bln
bln
bln
bln
-tCr
-bln
-bln
+chb
bln
bln
bln
@@ -264268,9 +266602,11 @@ bln
bln
bln
bln
-mVm
bln
bln
+vap
+lSu
+lSu
bln
bln
bln
@@ -264429,137 +266765,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
@@ -264701,18 +267037,18 @@ bln
bln
jZM
oeh
-kLs
+jZM
vmR
jZM
-bln
+htd
bln
bln
jZM
vmR
-kLs
+jZM
woU
jZM
-bln
+htd
bln
bln
bln
@@ -264736,6 +267072,7 @@ bln
bln
bln
bln
+lSu
bln
bln
bln
@@ -264752,10 +267089,9 @@ bln
bln
bln
bln
-bln
-vsI
-sEB
-sEB
+hMM
+ooL
+rwt
bln
bln
bln
@@ -264787,7 +267123,7 @@ bln
bln
ozo
bln
-bln
+wNO
wNO
wNO
wNO
@@ -264946,7 +267282,7 @@ wNO
wNO
wNO
bln
-fBN
+xOk
bln
bln
bln
@@ -264977,23 +267313,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
@@ -265044,7 +267380,7 @@ bln
bln
bln
bln
-bln
+wNO
wNO
wNO
wNO
@@ -265237,12 +267573,12 @@ bln
bln
bln
bln
-nRV
-vyU
-vyU
-vyU
-vyU
+lqE
vyU
+pXY
+pXY
+pXY
+pXY
fcP
bln
bln
@@ -265250,6 +267586,7 @@ bln
bln
bln
bln
+lSu
bln
bln
bln
@@ -265299,9 +267636,8 @@ bln
bln
bln
bln
-bln
-bln
-bln
+wNO
+wNO
wNO
wNO
wNO
@@ -265554,11 +267890,11 @@ bln
bln
bln
bln
-bln
-bln
-bln
-bln
-bln
+wNO
+wNO
+wNO
+wNO
+wNO
wNO
wNO
wNO
@@ -266021,7 +268357,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
wNO
wNO
@@ -266231,8 +268567,7 @@ wNO
wNO
wNO
bln
-fBN
-bln
+xOk
bln
bln
bln
@@ -266262,8 +268597,8 @@ bln
bln
bln
bln
-fBN
bln
+xOk
bln
bln
bln
@@ -266279,6 +268614,7 @@ bln
bln
bln
bln
+lSu
bln
wNO
wNO
@@ -266535,7 +268871,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
wNO
wNO
@@ -267306,7 +269642,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
wNO
wNO
@@ -267413,9 +269749,9 @@ wNO
(215,1,3) = {"
wNO
wNO
-wNO
-wNO
-tNN
+bln
+bln
+fwx
kDs
kDs
kDs
@@ -267516,8 +269852,7 @@ wNO
wNO
wNO
bln
-fBN
-bln
+xOk
bln
bln
bln
@@ -267547,8 +269882,8 @@ bln
bln
bln
bln
-fBN
bln
+xOk
bln
bln
bln
@@ -267564,6 +269899,7 @@ bln
bln
bln
bln
+lSu
bln
wNO
wNO
@@ -267670,9 +270006,9 @@ wNO
(216,1,3) = {"
wNO
wNO
-wNO
-wNO
-wNO
+bln
+bln
+bln
kDs
kDs
kDs
@@ -267820,7 +270156,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
wNO
wNO
@@ -267927,9 +270263,9 @@ wNO
(217,1,3) = {"
wNO
wNO
-wNO
-wNO
-wNO
+bln
+bln
+bln
bln
hHG
hHG
@@ -268077,7 +270413,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
wNO
wNO
@@ -268184,10 +270520,10 @@ wNO
(218,1,3) = {"
wNO
wNO
-wNO
+bln
tkU
tkU
-lgH
+fwx
hHG
hHG
hHG
@@ -268591,7 +270927,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
wNO
wNO
@@ -268801,7 +271137,7 @@ wNO
wNO
wNO
bln
-fBN
+xOk
bln
bln
bln
@@ -268832,8 +271168,7 @@ bln
bln
bln
bln
-fBN
-bln
+xOk
bln
bln
bln
@@ -268849,6 +271184,7 @@ bln
bln
bln
bln
+lSu
bln
wNO
wNO
@@ -268958,7 +271294,7 @@ wNO
tkU
tkU
tkU
-uFg
+bln
hHG
hHG
hHG
@@ -269105,7 +271441,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
wNO
wNO
@@ -269215,7 +271551,7 @@ wNO
tkU
tkU
tkU
-lgH
+fwx
hHG
hHG
hHG
@@ -269362,7 +271698,7 @@ bln
bln
bln
bln
-bln
+lSu
bln
wNO
wNO
@@ -269618,8 +271954,8 @@ bln
bln
bln
bln
-bln
-bln
+lSu
+lSu
bln
wNO
wNO
@@ -269875,9 +272211,9 @@ bln
bln
bln
bln
+lSu
bln
-bln
-bln
+lSu
wNO
wNO
wNO
@@ -270086,7 +272422,7 @@ wNO
wNO
wNO
bln
-fBN
+xOk
bln
bln
bln
@@ -270117,7 +272453,7 @@ bln
bln
bln
bln
-fBN
+xOk
bln
bln
bln
@@ -270132,10 +272468,10 @@ bln
bln
bln
bln
-fBN
-bln
-fBN
+xOk
bln
+xOk
+lSu
wNO
wNO
wNO
@@ -270757,7 +273093,7 @@ wNO
wNO
tkU
tkU
-lgH
+fwx
hHG
hHG
hHG
@@ -271269,7 +273605,7 @@ wNO
wNO
wNO
wNO
-wNO
+bln
tkU
bln
hHG
@@ -271371,7 +273707,7 @@ wNO
wNO
bln
bln
-fBN
+xOk
bln
bln
bln
@@ -271402,7 +273738,7 @@ bln
bln
bln
bln
-fBN
+xOk
bln
bln
wNO
@@ -271526,7 +273862,7 @@ wNO
wNO
wNO
wNO
-wNO
+bln
tkU
bln
hHG
@@ -271783,7 +274119,7 @@ wNO
wNO
wNO
wNO
-wNO
+bln
tkU
bln
hHG
@@ -272040,7 +274376,7 @@ wNO
wNO
wNO
wNO
-wNO
+bln
tkU
bln
hHG
@@ -272296,10 +274632,10 @@ wNO
(234,1,3) = {"
wNO
wNO
-wNO
-wNO
-wNO
-lgH
+bln
+bln
+bln
+fwx
hHG
hHG
hHG
@@ -272553,9 +274889,9 @@ wNO
(235,1,3) = {"
wNO
wNO
-lgH
-wNO
-wNO
+fwx
+bln
+bln
bln
hHG
hHG
@@ -272810,9 +275146,9 @@ wNO
(236,1,3) = {"
wNO
wNO
-aaX
-wNO
-wNO
+qzn
+bln
+bln
bln
hHG
hHG
@@ -273067,9 +275403,9 @@ wNO
(237,1,3) = {"
wNO
wNO
-fhB
-wNO
-wNO
+liV
+bln
+bln
bln
hHG
hHG
@@ -273324,10 +275660,10 @@ wNO
(238,1,3) = {"
wNO
wNO
-wNO
-wNO
-wNO
-lgH
+bln
+bln
+bln
+fwx
hHG
hHG
hHG
@@ -273583,7 +275919,7 @@ wNO
wNO
wNO
wNO
-wNO
+bln
bln
hHG
hHG
@@ -274612,7 +276948,7 @@ wNO
wNO
wNO
wNO
-lgH
+fwx
hHG
hHG
hHG
@@ -274628,7 +276964,7 @@ vbG
hHG
hHG
hHG
-aaX
+qzn
wNO
wNO
wNO
@@ -274885,7 +277221,7 @@ vbG
hHG
hHG
hHG
-fhB
+liV
wNO
wNO
wNO
@@ -275383,7 +277719,7 @@ wNO
wNO
wNO
wNO
-lgH
+fwx
hHG
hHG
hHG
@@ -275396,8 +277732,8 @@ wNO
wNO
bln
bln
-xDQ
-xDQ
+wDS
+wDS
bln
bln
wNO
@@ -275653,8 +277989,8 @@ wNO
wNO
bln
bln
-wUD
-wUD
+vOy
+vOy
bln
bln
bln
@@ -275910,8 +278246,8 @@ wNO
wNO
bln
bln
-rPp
-rPp
+dTI
+dTI
bln
bln
bln
@@ -276411,7 +278747,7 @@ wNO
wNO
wNO
wNO
-lgH
+fwx
hHG
hHG
hHG
@@ -277182,7 +279518,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 a719ae4c67114..a3b90c665b221 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -20128,7 +20128,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
@@ -20138,6 +20137,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" = (
@@ -26583,13 +26583,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" = (
@@ -50063,6 +50063,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"
@@ -54523,6 +54528,7 @@
/obj/machinery/atmospherics/components/binary/pump{
dir = 4
},
+/obj/item/kirbyplants/random,
/turf/open/floor/iron/white,
/area/station/science/cytology)
"tmq" = (
@@ -99518,7 +99524,7 @@ sWV
sWV
sWV
qJb
-fEn
+rJh
hME
olw
olw
diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm
index b4168c7d54d93..0d591a0ea0e1b 100644
--- a/_maps/map_files/NorthStar/north_star.dmm
+++ b/_maps/map_files/NorthStar/north_star.dmm
@@ -34444,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" = (
@@ -52447,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" = (
diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm
index 6c38b33783521..dfab71ec7974e 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)
@@ -129,13 +135,7 @@
/turf/open/floor/iron,
/area/station/engineering/main)
"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,
@@ -318,9 +318,9 @@
/turf/open/floor/iron,
/area/station/security/brig)
"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,
@@ -593,6 +593,13 @@
},
/turf/open/floor/iron,
/area/station/construction)
+"dN" = (
+/obj/machinery/navbeacon{
+ location = "1-Southwest";
+ codes_txt = "patrol;next_patrol=2-Northwest"
+ },
+/turf/open/floor/iron,
+/area/station/commons/storage/primary)
"dP" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -1090,8 +1097,7 @@
/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)
"hm" = (
/obj/machinery/airalarm/directional/west,
@@ -1116,6 +1122,13 @@
},
/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
@@ -1307,6 +1320,13 @@
},
/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,
@@ -1327,6 +1347,13 @@
/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,
@@ -1351,6 +1378,14 @@
"qQ" = (
/turf/open/floor/engine,
/area/station/cargo/miningoffice)
+"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,
@@ -1486,6 +1521,12 @@
/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
@@ -1562,9 +1603,23 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/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,
@@ -2011,6 +2066,13 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/station/engineering/gravity_generator)
+"JJ" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=4-Southeast";
+ location = "3-Northeast"
+ },
+/turf/open/floor/iron,
+/area/station/commons/storage/primary)
"JV" = (
/obj/machinery/camera/autoname/directional/east,
/obj/effect/turf_decal/stripes/line{
@@ -2040,9 +2102,17 @@
/turf/open/floor/plating,
/area/station/engineering/atmos)
"Lb" = (
-/obj/machinery/door/airlock,
-/turf/open/floor/plating,
-/area/station/medical/medbay)
+/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{
@@ -2243,6 +2313,13 @@
},
/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
@@ -2305,6 +2382,7 @@
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" = (
@@ -2382,9 +2460,6 @@
/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/layer4,
/obj/structure/cable,
/turf/open/floor/iron,
@@ -7355,14 +7430,14 @@ bE
cS
qv
dJ
+wR
dJ
dJ
dJ
dJ
dJ
dJ
-dJ
-dJ
+dN
dJ
dJ
cS
@@ -7520,8 +7595,8 @@ aa
aa
aa
aa
-ad
-ad
+ak
+ak
ak
ak
ak
@@ -7612,8 +7687,8 @@ aa
aa
aa
aa
-ad
-af
+aa
+aa
ak
Va
Bp
@@ -7704,13 +7779,13 @@ aa
aa
aa
aa
-bY
-af
+aa
+aa
ak
Rx
-bh
-bh
-bh
+aX
+aX
+aX
br
ak
bS
@@ -7726,7 +7801,7 @@ dt
dJ
dD
dJ
-dI
+qR
dJ
XZ
dJ
@@ -7796,14 +7871,14 @@ aa
aa
aa
aa
-ad
-af
+aa
+aa
ak
gW
-aI
+Lb
aX
-aI
-aI
+Qi
+ak
ak
Ly
EX
@@ -7888,14 +7963,14 @@ aa
aa
aa
aa
-ad
+aa
+aa
+aa
+aI
af
-ak
-av
-av
-av
-av
-av
+aX
+ad
+aI
by
by
ck
@@ -7980,14 +8055,14 @@ aa
aa
aa
aa
-ad
+aa
+aa
+aa
+aI
af
-ak
-av
-MN
-MN
-MN
-av
+aX
+ad
+aI
by
Ot
cl
@@ -8072,14 +8147,14 @@ aa
aa
aa
aa
-ad
+aa
+aa
+aa
+aI
af
-ak
-dT
-MN
-av
-Jp
-av
+aX
+ad
+aI
by
DD
cm
@@ -8091,14 +8166,14 @@ Sj
by
jk
dJ
-dJ
+JJ
dJ
dJ
yl
dJ
dJ
dJ
-dJ
+pY
dJ
dJ
cS
@@ -8164,14 +8239,14 @@ aa
aa
aa
aa
-ad
+aa
+aa
+aa
+aI
af
-ak
-av
-MN
-MN
-MN
-av
+aX
+ad
+aI
by
ER
cm
@@ -8256,14 +8331,14 @@ aa
aa
aa
aa
-ad
+aa
+aa
+aa
+aI
af
-ak
-av
-av
-aY
-av
-av
+bY
+ad
+aI
by
jZ
cm
@@ -8348,14 +8423,14 @@ aa
aa
aa
aa
-ad
+aa
+aa
+aa
+aI
af
-ak
-ak
-ak
-ak
-ak
-ak
+aX
+ad
+aI
by
er
cm
@@ -8440,15 +8515,15 @@ aa
aa
aa
aa
-ad
-af
-af
-af
-af
-af
-af
+aa
+aa
+aa
+aI
af
-Lb
+aX
+ad
+aI
+by
wk
PK
PK
@@ -8532,14 +8607,14 @@ aa
aa
aa
aa
+aa
+aa
+aa
+aI
+af
+aX
ad
-ad
-ad
-ad
-ad
-ad
-ad
-ad
+aI
by
by
by
@@ -8627,11 +8702,11 @@ aa
fg
fg
fg
-fg
-fg
-fg
-fg
-fg
+aI
+af
+aX
+ad
+aI
aa
aa
ck
@@ -8719,11 +8794,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+hS
+bY
+ad
+aI
aa
aa
ck
@@ -8811,11 +8886,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+af
+aX
+ad
+aI
aa
aa
by
@@ -8903,11 +8978,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+af
+aX
+ad
+aI
aa
aa
aa
@@ -8995,11 +9070,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+af
+aX
+ad
+aI
aa
aa
aa
@@ -9087,11 +9162,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+af
+aX
+ad
+aI
aa
aa
aa
@@ -9179,11 +9254,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+af
+bY
+ad
+aI
aa
aa
aa
@@ -9271,11 +9346,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+af
+aX
+ad
+aI
aa
aa
aa
@@ -9363,11 +9438,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+af
+aX
+ad
+aI
aa
aa
aa
@@ -9455,11 +9530,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+af
+aX
+ad
+aI
aa
aa
aa
@@ -9547,11 +9622,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+aI
+af
+aX
+ad
+aI
aa
aa
aa
@@ -9639,11 +9714,11 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
+ak
+qq
+bh
+xq
+ak
aa
aa
aa
@@ -9730,13 +9805,13 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+ak
+ak
+aI
+vw
+aI
+ak
+ak
aa
aa
aa
@@ -9822,13 +9897,13 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+ak
+av
+av
+av
+av
+av
+ak
aa
aa
aa
@@ -9914,13 +9989,13 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+ak
+av
+MN
+MN
+MN
+av
+ak
aa
aa
aa
@@ -10006,13 +10081,13 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+ak
+dT
+MN
+av
+Jp
+av
+ak
aa
aa
aa
@@ -10098,13 +10173,13 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+ak
+av
+MN
+MN
+MN
+av
+ak
aa
aa
aa
@@ -10190,13 +10265,13 @@ aa
aa
aa
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+ak
+av
+av
+aY
+av
+av
+ak
aa
aa
aa
@@ -10282,13 +10357,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 1d1e21590b7e2..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,12 +7006,6 @@
},
/turf/open/floor/iron,
/area/centcom/tdome/observation)
-"Ga" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/neutral/fourcorners,
-/obj/machinery/fax,
-/turf/open/floor/iron/dark,
-/area/centcom/central_command_areas/ferry)
"Gb" = (
/obj/effect/light_emitter/thunderdome,
/turf/closed/indestructible/fakeglass,
@@ -7359,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;
@@ -7402,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{
@@ -7440,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,
@@ -7523,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"
@@ -7556,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{
@@ -7654,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{
@@ -8233,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)
@@ -8319,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,
@@ -8788,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,
@@ -9216,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,
@@ -9580,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,
@@ -9592,27 +9653,6 @@
/obj/effect/light_emitter/thunderdome,
/turf/open/floor/iron,
/area/centcom/tdome/arena)
-"TO" = (
-/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)
"TS" = (
/obj/structure/table/wood,
/obj/item/dice/d20{
@@ -9784,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,
@@ -10246,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)
@@ -10388,18 +10399,6 @@
"Xq" = (
/turf/open/floor/wood,
/area/centcom/central_command_areas/admin)
-"Xr" = (
-/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)
"Xs" = (
/obj/effect/turf_decal/tile/brown/anticorner/contrasted,
/turf/open/floor/iron,
@@ -10503,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)
@@ -10925,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
@@ -11182,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
@@ -11439,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
@@ -11696,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
@@ -11953,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
@@ -12210,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
@@ -12467,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
@@ -12724,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
@@ -12981,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
@@ -13232,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
@@ -13495,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
@@ -13752,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
@@ -14009,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
@@ -14266,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
@@ -14523,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
@@ -14780,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
@@ -15037,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
@@ -45272,7 +45260,7 @@ aa
aa
aa
oe
-Ga
+ig
sq
to
ZN
@@ -45532,7 +45520,7 @@ mD
FX
sr
tp
-Xr
+KW
mD
aa
oe
@@ -47077,9 +47065,9 @@ tu
mD
mD
mD
-wu
+ds
xh
-wu
+ds
mD
gO
cn
@@ -47343,7 +47331,7 @@ WN
cb
Bu
tb
-aV
+rr
ho
gO
aa
@@ -47591,9 +47579,9 @@ dx
Hz
dd
mD
-WQ
+Kv
xh
-WQ
+Kv
mD
WO
eF
@@ -48111,8 +48099,8 @@ fa
mD
PU
eF
-PX
-Ke
+nz
+yR
eV
eF
xU
@@ -49122,7 +49110,7 @@ vo
fP
On
Zw
-XV
+df
hd
To
BT
@@ -49945,7 +49933,7 @@ Bp
Sz
Sz
uf
-gh
+FU
uf
aa
aa
@@ -50661,7 +50649,7 @@ iF
Pg
mH
nm
-TO
+NN
On
Ui
JC
@@ -51479,7 +51467,7 @@ BY
QC
bR
HK
-UE
+zO
HK
HK
pb
@@ -51960,9 +51948,9 @@ YU
YU
mD
mD
-wu
+ds
xh
-wu
+ds
mD
Ya
rY
@@ -52474,9 +52462,9 @@ iu
iu
io
io
-ub
+uk
mk
-ub
+uk
io
io
iu
@@ -54306,7 +54294,7 @@ Gb
Ef
NY
NY
-Jj
+fb
Jq
NY
NY
@@ -55782,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
@@ -56072,9 +56060,9 @@ Fq
UO
io
io
-yU
+gY
mk
-yU
+gY
io
io
iu
@@ -56586,9 +56574,9 @@ io
yj
io
io
-Oj
+Im
mk
-Oj
+Im
io
io
iu
@@ -57133,7 +57121,7 @@ Tf
QC
dj
Mf
-DT
+RQ
Mf
Mf
Zi
@@ -58352,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
@@ -58642,9 +58630,9 @@ cg
cg
cg
cg
-yU
+gY
GJ
-yU
+gY
cg
cg
cg
@@ -58683,7 +58671,7 @@ Bp
Sz
Sz
uf
-gh
+FU
uf
aa
aa
@@ -59156,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 469e5ec80fb3d..bcf24651157e8 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -44474,8 +44474,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" = (
@@ -47957,6 +47957,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" = (
@@ -59837,6 +59838,7 @@
pixel_x = -23;
pixel_y = 8
},
+/obj/structure/secure_safe/directional/south,
/turf/open/floor/iron/grimy,
/area/station/security/detectives_office)
"udZ" = (
diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm
index fa4ea9e4b3263..47ed0380935d8 100644
--- a/_maps/map_files/wawastation/wawastation.dmm
+++ b/_maps/map_files/wawastation/wawastation.dmm
@@ -8832,6 +8832,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" = (
@@ -13766,7 +13767,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" = (
@@ -21383,6 +21383,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{
@@ -24736,6 +24742,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" = (
@@ -39062,6 +39069,7 @@
/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" = (
@@ -46382,6 +46390,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,
@@ -52520,6 +52532,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" = (
@@ -53709,6 +53722,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"
@@ -60664,6 +60683,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" = (
@@ -82467,7 +82487,7 @@ dUc
xrb
xrb
nPw
-dEG
+qwB
iqf
cKn
pjt
@@ -82979,7 +82999,7 @@ cLf
dUc
cLf
xrb
-nEx
+hAS
syF
ckc
sqk
@@ -83750,7 +83770,7 @@ cLf
iUF
cLf
sNu
-nEx
+hAS
rXZ
vjm
hbw
@@ -93566,7 +93586,7 @@ dTU
pMD
acc
kYl
-jUd
+sUD
dGc
fDN
enu
diff --git a/_maps/shuttles/pirate_ex_interdyne.dmm b/_maps/shuttles/pirate_ex_interdyne.dmm
index dce984f19c993..4036972b7a87a 100644
--- a/_maps/shuttles/pirate_ex_interdyne.dmm
+++ b/_maps/shuttles/pirate_ex_interdyne.dmm
@@ -291,7 +291,7 @@
/area/shuttle/pirate)
"aS" = (
/obj/effect/turf_decal/tile/dark_blue/opposingcorners,
-/obj/structure/closet/crate/freezer/blood,
+/obj/structure/closet/crate/freezer/blood/interdyne,
/obj/machinery/light/small/blacklight/directional/south,
/obj/machinery/iv_drip,
/turf/open/floor/iron/dark,
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/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/meta_central.dmm b/_maps/virtual_domains/meta_central.dmm
new file mode 100644
index 0000000000000..bf821cc6e3433
--- /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/pirate/skeleton/captain,
+/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/hud/security/night{
+ pixel_x = -8;
+ pixel_y = -6
+ },
+/obj/item/clothing/glasses/hud/security/night,
+/obj/item/clothing/glasses/hud/security/night{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/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_access,
+/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/syndicate_assault.dmm b/_maps/virtual_domains/syndicate_assault.dmm
index 00c7f84dbca20..d825152e480e7 100644
--- a/_maps/virtual_domains/syndicate_assault.dmm
+++ b/_maps/virtual_domains/syndicate_assault.dmm
@@ -693,7 +693,7 @@
/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/virtual_domain)
"Cn" = (
diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm
index c1e517e8fbbbe..74eefa2dc858c 100644
--- a/code/__DEFINES/DNA.dm
+++ b/code/__DEFINES/DNA.dm
@@ -16,8 +16,8 @@
#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 its name in the mutation section of the dna console
#define MUT_EXTRA 2
diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm
index 8a658f3913d7d..2de9e7140ad26 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,11 @@
}\
/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
diff --git a/code/__DEFINES/_flags.dm b/code/__DEFINES/_flags.dm
index cbc17654078bf..687f5365f6d4a 100644
--- a/code/__DEFINES/_flags.dm
+++ b/code/__DEFINES/_flags.dm
@@ -25,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)
@@ -52,7 +52,7 @@ 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)
@@ -81,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)
@@ -281,8 +281,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/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..4f1cf4b746ac6 100644
--- a/code/__DEFINES/achievements.dm
+++ b/code/__DEFINES/achievements.dm
@@ -57,6 +57,7 @@
#define MEDAL_DEBT_EXTINGUISHED "Debt Extinguished"
#define MEDAL_SISYPHUS "Sisyphus"
#define MEDAL_ARCHMAGE "Archmage"
+#define MEDAL_CIGARETTES "Cigarettes"
#define MEDAL_THEORETICAL_LIMITS "All Within Theoretical Limits"
//Skill medal hub IDs
diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm
index 66f34f5f57b37..74c9120d804d4 100644
--- a/code/__DEFINES/admin.dm
+++ b/code/__DEFINES/admin.dm
@@ -73,8 +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 fax machine.
-#define ADMIN_PRINT_FAX(atom, fax_name) "(PRINT)"
+/// 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.
diff --git a/code/__DEFINES/admin_verb.dm b/code/__DEFINES/admin_verb.dm
index 04806e098b2c4..71e0475e5c39c 100644
--- a/code/__DEFINES/admin_verb.dm
+++ b/code/__DEFINES/admin_verb.dm
@@ -81,7 +81,7 @@ _ADMIN_VERB(verb_path_name, verb_permissions, verb_name, verb_desc, verb_categor
#define ADMIN_CATEGORY_FUN "Admin.Fun"
#define ADMIN_CATEGORY_GAME "Admin.Game"
-// 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 4374288b07c5b..0c682f7d411a8 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"
@@ -47,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"
@@ -133,6 +133,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
diff --git a/code/__DEFINES/ai/monsters.dm b/code/__DEFINES/ai/monsters.dm
index fb6952eb08491..330e2d48eb226 100644
--- a/code/__DEFINES/ai/monsters.dm
+++ b/code/__DEFINES/ai/monsters.dm
@@ -288,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/antagonists.dm b/code/__DEFINES/antagonists.dm
index f94871d10ccfa..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))
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/bodyparts.dm b/code/__DEFINES/bodyparts.dm
index 8afda278a418b..18d0a3c7cb87c 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.
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/combat.dm b/code/__DEFINES/combat.dm
index 4c7a9c169623b..60cd3a7b018b7 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"
diff --git a/code/__DEFINES/construction/material.dm b/code/__DEFINES/construction/material.dm
index 445b4e0dc88e4..57d55ab804281 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.
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/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/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_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm
index d75d8bacec73a..925c7bc4e718e 100644
--- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm
@@ -74,7 +74,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 its 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"
@@ -119,6 +119,12 @@
/// 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)
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_fish.dm b/code/__DEFINES/dcs/signals/signals_fish.dm
index 2fbf99446ab94..8af3b8dfca79c 100644
--- a/code/__DEFINES/dcs/signals/signals_fish.dm
+++ b/code/__DEFINES/dcs/signals/signals_fish.dm
@@ -17,6 +17,12 @@
#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/pet_fish
+#define COMSIG_FISH_PETTED "fish_petted"
+///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"
/// Fishing challenge completed
#define COMSIG_FISHING_CHALLENGE_COMPLETED "fishing_completed"
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_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..16f7e00e78a19 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,5 @@
///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"
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 051953bd7e508..56d5ddf452471 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()
@@ -95,11 +95,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"
@@ -133,6 +133,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()
@@ -155,10 +159,10 @@
#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)
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 dfbfe68ad52cd..1b2d82ca9c5d7 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
@@ -50,7 +50,7 @@
#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(): (direction, old_dir)
#define COMSIG_MOB_CLIENT_MOVED "mob_client_moved"
@@ -72,7 +72,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,6 +138,7 @@
#define SPEECH_FILTERPROOF 8
#define SPEECH_RANGE 9
#define SPEECH_SAYMODE 10
+ #define SPEECH_MODS 11
///from /mob/say_dead(): (mob/speaker, message)
#define COMSIG_MOB_DEADSAY "mob_deadsay"
@@ -150,8 +151,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 +170,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)
@@ -248,3 +247,6 @@
/// from /mob/proc/key_down(): (key, client/client, full_key)
#define COMSIG_MOB_KEYDOWN "mob_key_down"
+
+/// from /mob/update_incapacitated(): (old_incap, new_incap)
+#define COMSIG_MOB_INCAPACITATE_CHANGED "mob_incapacitated"
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 45b671141a380..797256017d456 100644
--- a/code/__DEFINES/dcs/signals/signals_object.dm
+++ b/code/__DEFINES/dcs/signals/signals_object.dm
@@ -153,12 +153,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)
@@ -530,6 +530,9 @@
/// 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 its loc. (obj/item/changed_item, old_w_class, new_w_class)
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_spell.dm b/code/__DEFINES/dcs/signals/signals_spell.dm
index d9ef98527e25c..8d02affded85a 100644
--- a/code/__DEFINES/dcs/signals/signals_spell.dm
+++ b/code/__DEFINES/dcs/signals/signals_spell.dm
@@ -113,7 +113,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/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 3671ff3d8cdc6..04557b4a8e606 100644
--- a/code/__DEFINES/fish.dm
+++ b/code/__DEFINES/fish.dm
@@ -1,5 +1,7 @@
/// 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
@@ -14,11 +16,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 +67,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 +88,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 +114,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,6 +128,15 @@
///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 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.
@@ -164,3 +180,19 @@
//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
+
+///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 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"
diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm
index 3787aeb4df7b9..c9b7cb43cf0d9 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,
),
))
diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm
index af219a90eb1f4..d4d18ede5f386 100644
--- a/code/__DEFINES/icon_smoothing.dm
+++ b/code/__DEFINES/icon_smoothing.dm
@@ -210,6 +210,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/inventory.dm b/code/__DEFINES/inventory.dm
index 054a08743acc8..c58f12bf5c957 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!
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 0d9d28d4d858a..8846672efe1b7 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))
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 55272920fdd5a..d5c17a877a4b6 100644
--- a/code/__DEFINES/layers.dm
+++ b/code/__DEFINES/layers.dm
@@ -145,9 +145,9 @@
#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)
//WALL_PLANE layers
#define BELOW_CLOSED_TURF_LAYER 2.053
@@ -253,7 +253,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
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..340bf3608bb5d 100644
--- a/code/__DEFINES/living.dm
+++ b/code/__DEFINES/living.dm
@@ -4,3 +4,6 @@
/// 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)
+
+/// 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 d7245d8b6f362..9d2cf451c62e1 100644
--- a/code/__DEFINES/machines.dm
+++ b/code/__DEFINES/machines.dm
@@ -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
diff --git a/code/__DEFINES/market.dm b/code/__DEFINES/market.dm
index f0a19ad056d9a..e0bd457835208 100644
--- a/code/__DEFINES/market.dm
+++ b/code/__DEFINES/market.dm
@@ -10,3 +10,5 @@
// 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/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/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 833d2d546a718..a5725326a3c73 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -317,7 +317,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
@@ -520,7 +520,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)
@@ -733,7 +733,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)
@@ -883,7 +883,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)
@@ -917,6 +917,8 @@ GLOBAL_LIST_INIT(layers_to_offset, list(
/// 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().
@@ -1013,6 +1015,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"
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/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/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/research/anomalies.dm b/code/__DEFINES/research/anomalies.dm
index 93f1bc924c288..e04aead3464bc 100644
--- a/code/__DEFINES/research/anomalies.dm
+++ b/code/__DEFINES/research/anomalies.dm
@@ -2,7 +2,7 @@
#define MAX_CORES_BLUESPACE 3
#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 3c730e02169fa..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"
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 2dcb96b8c42f1..7322340fb1f4f 100644
--- a/code/__DEFINES/sound.dm
+++ b/code/__DEFINES/sound.dm
@@ -176,5 +176,11 @@ 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"
diff --git a/code/__DEFINES/span.dm b/code/__DEFINES/span.dm
index fadd00053156d..259a13e1e9afe 100644
--- a/code/__DEFINES/span.dm
+++ b/code/__DEFINES/span.dm
@@ -48,6 +48,7 @@
#define span_drone(str) ("" + str + "")
#define span_engradio(str) ("" + str + "")
#define span_extremelybig(str) ("" + str + "")
+#define span_enteradio(str) ("" + str + "")
#define span_game_say(str) ("" + str + "")
#define span_ghostalert(str) ("" + str + "")
#define span_green(str) ("" + str + "")
diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index 8ada83a2109cb..ead7764d60523 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -24,12 +24,18 @@
#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)
+/// 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))
/// Maxamounts of fire stacks a mob can get
#define MAX_FIRE_STACKS 20
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index fba8a97d713a2..c5e3172533a45 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,7 @@
// 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_IDLE_NPC 5
#define FIRE_PRIORITY_PING 10
#define FIRE_PRIORITY_SERVER_MAINT 10
#define FIRE_PRIORITY_RESEARCH 10
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 4766b3dfe661e..42f2d5fc31fee 100644
--- a/code/__DEFINES/tgs.dm
+++ b/code/__DEFINES/tgs.dm
@@ -1,7 +1,7 @@
// 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.2.1"
+#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.
diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm
index 294d32ddc3b0f..5a8c06adcad85 100644
--- a/code/__DEFINES/traits/declarations.dm
+++ b/code/__DEFINES/traits/declarations.dm
@@ -24,7 +24,7 @@ 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"
/// Expands our FOV by 30 degrees if restricted
#define TRAIT_EXPANDED_FOV "expanded_fov"
@@ -50,7 +50,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"
@@ -149,8 +149,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
@@ -171,7 +169,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"
@@ -227,10 +225,16 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#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"
+///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"
///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"
/// 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
@@ -251,7 +255,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
@@ -263,7 +267,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#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
@@ -357,16 +364,14 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_GUNFLIP "gunflip"
/// Increases chance of getting special traumas, makes them harder to cure
#define TRAIT_SPECIAL_TRAUMA_BOOST "special_trauma_boost"
-/// Doubles the duration and cooldown of a flip
-#define TRAIT_SLOW_FLIP "slow_flip"
#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"
@@ -419,6 +424,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
@@ -431,7 +438,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"
@@ -527,9 +534,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"
@@ -574,6 +578,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
@@ -667,6 +674,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.
@@ -733,16 +742,20 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#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"
@@ -750,7 +763,14 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// 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_unconsumabe"
+#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
@@ -928,6 +948,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_MECHA_CREATED_NORMALLY "trait_mecha_created_normally"
///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"
@@ -942,6 +964,14 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#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 "should_twohanded"
/// Trait given to angelic constructs to let them purge cult runes
#define TRAIT_ANGELIC "angelic"
@@ -1039,6 +1069,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"
@@ -1084,14 +1121,16 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Currently fishing
#define TRAIT_GONE_FISHING "fishing"
+/// Currently fishing, and it's the active minigame phase
+#define TRAIT_ACTIVELY_FISHING "actively_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?
@@ -1189,6 +1228,12 @@ 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.
@@ -1230,4 +1275,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
///Trait which allows mobs to parry mining mob projectiles
#define TRAIT_MINING_PARRYING "mining_parrying"
+///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 f11cc50dbbd58..0648dd4dd3748 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]
diff --git a/code/__HELPERS/_dreamluau.dm b/code/__HELPERS/_dreamluau.dm
index 196774d6a88e8..1e1e315a2aebd 100644
--- a/code/__HELPERS/_dreamluau.dm
+++ b/code/__HELPERS/_dreamluau.dm
@@ -1,8 +1,12 @@
/* This comment bypasses grep checks */ /var/__dreamluau
-#define DREAMLUAU (world.system_type == MS_WINDOWS ? "dreamluau.dll" : (__dreamluau || (__dreamluau = __detect_auxtools("dreamluau"))))
+/* This comment also bypasses grep checks */ /var/__dreamluau_exists
-#define DREAMLUAU_CALL(func) call_ext(DREAMLUAU, "byond:[#func]")
+#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.
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/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 7106ec81be1ba..646410026a054 100644
--- a/code/__HELPERS/atoms.dm
+++ b/code/__HELPERS/atoms.dm
@@ -63,17 +63,17 @@
var/turf/target_turf = get_turf(target)
if(get_dist(source, target) > length)
return FALSE
- var/steps = 1
- if(current == target_turf)//they are on the same turf, source can see the target
+ if(current == target_turf || source.CanReach(target))//they are on the same turf or in reach, source can see the target
return TRUE
- current = get_step_towards(current, target_turf)
- while(current != target_turf)
- if(steps > length)
- return FALSE
+ var/list/steps = get_steps_to(source, target)
+ if(isnull(steps) || length(steps) > length)
+ return FALSE
+ for(var/direction in steps)
+ current = get_step(current, direction)
+ if(current == target_turf)
+ break
if(IS_OPAQUE_TURF(current))
return FALSE
- current = get_step_towards(current, target_turf)
- steps++
return TRUE
///Get the cardinal direction between two atoms
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/hallucinations.dm b/code/__HELPERS/hallucinations.dm
index edd65ee926abf..00fee61e2b1ca 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())
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/icons.dm b/code/__HELPERS/icons.dm
index 8d8727a90b052..127ae5387e1b0 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)
@@ -815,11 +815,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 +845,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 +890,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 +960,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 +1004,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"
@@ -1239,6 +1239,8 @@ 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)
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..5a55fd46fd296 100644
--- a/code/__HELPERS/maths.dm
+++ b/code/__HELPERS/maths.dm
@@ -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).
*/
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index ba1f7fc4e1d15..7c8e84e226d23 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -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)
@@ -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/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/reagents.dm b/code/__HELPERS/reagents.dm
index cb87e21cefa54..51ff7df475ee1 100644
--- a/code/__HELPERS/reagents.dm
+++ b/code/__HELPERS/reagents.dm
@@ -180,14 +180,23 @@
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
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index ed8d882393b5c..71e80014bb54a 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
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..2a8b61bd01db8 100644
--- a/code/__HELPERS/spatial_info.dm
+++ b/code/__HELPERS/spatial_info.dm
@@ -195,8 +195,12 @@
var/turf/inbetween_turf = center_turf
//this is the lowest overhead way of doing a loop in dm other than a goto. distance is guaranteed to be >= steps taken to target by this algorithm
- for(var/step_counter in 1 to distance)
- inbetween_turf = get_step_towards(inbetween_turf, target_turf)
+ var/list/steps = get_steps_to(inbetween_turf, target_turf)
+ if(isnull(steps))
+ return
+ steps.Cut(distance + 1)
+ for(var/direction in steps)
+ inbetween_turf = get_step(inbetween_turf, direction)
if(inbetween_turf == target_turf)//we've gotten to target's turf without returning due to turf opacity, so we must be able to see target
break
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index 2d30334ff518d..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, " ")
@@ -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
@@ -1142,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
diff --git a/code/__HELPERS/turfs.dm b/code/__HELPERS/turfs.dm
index 93da26ef292f8..c4867ba999373 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,7 +206,7 @@ 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)
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/_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/lists/basic_ai.dm b/code/_globalvars/lists/basic_ai.dm
new file mode 100644
index 0000000000000..8d79c9bfafeaf
--- /dev/null
+++ b/code/_globalvars/lists/basic_ai.dm
@@ -0,0 +1,12 @@
+///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)
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index faaabd77ba134..82cc3f1cf10b3 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -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 e44516d2f2873..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,
diff --git a/code/_globalvars/lists/quirks.dm b/code/_globalvars/lists/quirks.dm
index 22ef830ea773d..896504beb7b2a 100644
--- a/code/_globalvars/lists/quirks.dm
+++ b/code/_globalvars/lists/quirks.dm
@@ -92,3 +92,9 @@ 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,
+))
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 805cea677a092..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.
diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm
index 0dfcc67c5e1be..b92f2b7ff040f 100644
--- a/code/_globalvars/traits/_traits.dm
+++ b/code/_globalvars/traits/_traits.dm
@@ -19,9 +19,11 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_DRYABLE" = TRAIT_DRYABLE,
"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,
@@ -37,7 +39,6 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_CASTABLE_LOC" = TRAIT_CASTABLE_LOC,
"TRAIT_DEL_ON_SPACE_DUMP" = TRAIT_DEL_ON_SPACE_DUMP,
"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,
@@ -117,8 +118,12 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"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_ACTIVELY_FISHING" = TRAIT_ACTIVELY_FISHING,
"TRAIT_ADAMANTINE_EXTRACT_ARMOR" = TRAIT_ADAMANTINE_EXTRACT_ARMOR,
"TRAIT_ADVANCEDTOOLUSER" = TRAIT_ADVANCEDTOOLUSER,
"TRAIT_AGENDER" = TRAIT_AGENDER,
@@ -148,6 +153,7 @@ 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,
@@ -204,6 +210,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,
@@ -216,6 +223,8 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_EMOTEMUTE" = TRAIT_EMOTEMUTE,
"TRAIT_EMPATH" = TRAIT_EMPATH,
"TRAIT_ENTRAILS_READER" = TRAIT_ENTRAILS_READER,
+ "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,
@@ -230,7 +239,6 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_FENCE_CLIMBER" = TRAIT_FENCE_CLIMBER,
"TRAIT_FINGERPRINT_PASSTHROUGH" = TRAIT_FINGERPRINT_PASSTHROUGH,
"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,
@@ -288,6 +296,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"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,
@@ -442,11 +451,11 @@ 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_SLOW_FLIP" = TRAIT_SLOW_FLIP,
"TRAIT_SMOKER" = TRAIT_SMOKER,
"TRAIT_SNEAK" = TRAIT_SNEAK,
"TRAIT_SNOB" = TRAIT_SNOB,
@@ -500,6 +509,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,
@@ -531,9 +541,12 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION,
"TRAIT_SPEECH_BOOSTER" = TRAIT_SPEECH_BOOSTER,
"TRAIT_MINING_PARRYING" = TRAIT_MINING_PARRYING,
+ "TRAIT_ILLUSORY_EFFECT" = TRAIT_ILLUSORY_EFFECT,
),
/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,
@@ -559,6 +572,7 @@ 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,
@@ -589,16 +603,25 @@ 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_NO_HUNGER" = TRAIT_FISH_NO_HUNGER,
"TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING,
+ "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_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE,
- "TRAIT_FISH_ELECTROGENESIS" = TRAIT_FISH_ELECTROGENESIS,
"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/integrated_circuit = list(
"TRAIT_CIRCUIT_UI_OPEN" = TRAIT_CIRCUIT_UI_OPEN,
"TRAIT_CIRCUIT_UNDUPABLE" = TRAIT_CIRCUIT_UNDUPABLE,
@@ -632,9 +655,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,
),
diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm
index 585d121e6ce67..e92bc8ec4ae72 100644
--- a/code/_globalvars/traits/admin_tooling.dm
+++ b/code/_globalvars/traits/admin_tooling.dm
@@ -26,6 +26,8 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
/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,
@@ -101,7 +103,6 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_FEARLESS" = TRAIT_FEARLESS,
"TRAIT_FENCE_CLIMBER" = TRAIT_FENCE_CLIMBER,
"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,
@@ -259,7 +260,6 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE,
"TRAIT_SKITTISH" = TRAIT_SKITTISH,
"TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE,
- "TRAIT_SLOW_FLIP" = TRAIT_SLOW_FLIP,
"TRAIT_SMOKER" = TRAIT_SMOKER,
"TRAIT_SNOB" = TRAIT_SNOB,
"TRAIT_SOFTSPOKEN" = TRAIT_SOFTSPOKEN,
@@ -289,6 +289,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"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,
@@ -333,15 +334,26 @@ 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_NO_HUNGER" = TRAIT_FISH_NO_HUNGER,
"TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING,
+ "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_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..6696d985d0b8c 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)
@@ -247,7 +247,8 @@
return TRUE
/proc/CheckToolReach(atom/movable/here, atom/movable/there, reach)
- if(!here || !there)
+ . = FALSE
+ if(QDELETED(here) || QDELETED(there))
return
switch(reach)
if(0)
@@ -258,14 +259,18 @@
var/obj/dummy = new(get_turf(here))
dummy.pass_flags |= PASSTABLE
dummy.SetInvisibility(INVISIBILITY_ABSTRACT)
- for(var/i in 1 to reach) //Limit it to that many tries
- var/turf/T = get_step(dummy, get_dir(dummy, there))
+ var/list/steps = get_steps_to(dummy, there)
+ if(isnull(steps) || length(steps) > reach) // If the path is further than the reach, no way we can reach it anyways.
+ qdel(dummy)
+ return FALSE
+ for(var/direction in steps)
+ var/turf/next_step = get_step(dummy, direction)
if(dummy.CanReach(there))
qdel(dummy)
return TRUE
- if(!dummy.Move(T)) //we're blocked!
+ if(!dummy.Move(next_step)) // We're blocked, nope.
qdel(dummy)
- return
+ return FALSE
qdel(dummy)
/// Default behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click)
diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm
index a2dda93f4011f..60640d01d5a1f 100644
--- a/code/_onclick/cyborg.dm
+++ b/code/_onclick/cyborg.dm
@@ -58,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/hud.dm b/code/_onclick/hud/hud.dm
index 1b1314bbcd5e5..73497bf418ff1 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -584,7 +584,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)
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/parallax/parallax.dm b/code/_onclick/hud/parallax/parallax.dm
index 0a3732e134fc4..135c3f0caef6e 100644
--- a/code/_onclick/hud/parallax/parallax.dm
+++ b/code/_onclick/hud/parallax/parallax.dm
@@ -273,7 +273,7 @@ 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
set_new_hud(hud_owner = null)
@@ -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/rendering/_render_readme.md b/code/_onclick/hud/rendering/_render_readme.md
index 2c5e9875801b6..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 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.
+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/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index d0f6426254936..cb06e00d116ef 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -110,7 +110,7 @@
if(world.time <= usr.next_move)
return 1
- if(usr.incapacitated())
+ if(usr.incapacitated)
return 1
if(ismob(usr))
@@ -143,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)
@@ -204,7 +204,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
@@ -294,7 +294,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
@@ -471,7 +471,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
@@ -887,9 +887,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
@@ -907,9 +907,10 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/splash)
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 17de9f9d5cb77..5af9b7e016156 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -270,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)
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index 2f1465ac4ffe2..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
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/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 109a82a697e47..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))
@@ -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..e7aa6b53fdc21 100644
--- a/code/controllers/subsystem/ai_controllers.dm
+++ b/code/controllers/subsystem/ai_controllers.dm
@@ -6,61 +6,46 @@ 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()
+ ///type of status we are interested in running
+ var/planning_status = AI_STATUS_ON
/// 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
-
+ var/our_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)
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])
+ for(var/datum/ai_controller/ai_controller as anything in GLOB.ai_controllers_by_status[planning_status])
if(!COOLDOWN_FINISHED(ai_controller, failed_planning_cooldown))
continue
- if(!ai_controller.able_to_plan())
+ if(!ai_controller.able_to_plan)
continue
ai_controller.SelectBehaviors(wait * 0.1)
- if(!LAZYLEN(ai_controller.current_behaviors)) //Still no plan
+ if(!length(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))
+ our_cost = MC_AVERAGE(our_cost, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer))
///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..4557e153db190 100644
--- a/code/controllers/subsystem/air.dm
+++ b/code/controllers/subsystem/air.dm
@@ -559,7 +559,7 @@ 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
+ // .air instead of .return_air() because we can guarantee 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)]")
if(!potential_diff.excited)
@@ -707,7 +707,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..7258b0b16e948 100644
--- a/code/controllers/subsystem/ambience.dm
+++ b/code/controllers/subsystem/ambience.dm
@@ -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/blackbox.dm b/code/controllers/subsystem/blackbox.dm
index 3ea1a9a40d88f..18ba37eb13785 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)
diff --git a/code/controllers/subsystem/dynamic/dynamic.dm b/code/controllers/subsystem/dynamic/dynamic.dm
index 66a06c230c646..2092b3efacd8f 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.
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 9396728159480..3476702e741ed 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)
@@ -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.
@@ -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()
@@ -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)
diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm
index 72554a108e328..999cd156b18d8 100644
--- a/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm
+++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm
@@ -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 897bf0c4549ba..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
diff --git a/code/controllers/subsystem/id_access.dm b/code/controllers/subsystem/id_access.dm
index 38bf3b568a1f9..b80e5718128bd 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()
@@ -441,6 +443,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 +465,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/mapping.dm b/code/controllers/subsystem/mapping.dm
index 548bd2cf1ed7e..4d9d9b142eeee 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -184,17 +184,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)
@@ -731,6 +734,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
diff --git a/code/controllers/subsystem/materials.dm b/code/controllers/subsystem/materials.dm
index 3a704d01a82fd..f000688fbc71b 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)
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/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/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 a8c42631488e5..6438015d11d38 100644
--- a/code/controllers/subsystem/persistence/_persistence.dm
+++ b/code/controllers/subsystem/persistence/_persistence.dm
@@ -48,6 +48,17 @@ SUBSYSTEM_DEF(persistence)
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()
@@ -72,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)
diff --git a/code/controllers/subsystem/persistence/engravings.dm b/code/controllers/subsystem/persistence/engravings.dm
index f47fc7fbba124..6808a101bb8d5 100644
--- a/code/controllers/subsystem/persistence/engravings.dm
+++ b/code/controllers/subsystem/persistence/engravings.dm
@@ -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!")
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/polling.dm b/code/controllers/subsystem/polling.dm
index fa219cd3da9f0..6cdcfbfd45949 100644
--- a/code/controllers/subsystem/polling.dm
+++ b/code/controllers/subsystem/polling.dm
@@ -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
@@ -176,6 +175,8 @@ SUBSYSTEM_DEF(polling)
UNTIL(new_poll.finished)
if(!(amount_to_pick > 0))
return new_poll.signed_up
+ if(length(new_poll.signed_up) < amount_to_pick)
+ return new_poll.signed_up
for(var/pick in 1 to amount_to_pick)
new_poll.chosen_candidates += pick_n_take(new_poll.signed_up)
if(announce_chosen)
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..cda3d354882f4
--- /dev/null
+++ b/code/controllers/subsystem/processing/ai_idle_behaviors.dm
@@ -0,0 +1,6 @@
+PROCESSING_SUBSYSTEM_DEF(idle_ai_behaviors)
+ name = "idle_ai_behaviors"
+ flags = SS_NO_INIT | 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
diff --git a/code/controllers/subsystem/processing/fishing.dm b/code/controllers/subsystem/processing/fishing.dm
index da10d3d631aef..a81ff0dec6783 100644
--- a/code/controllers/subsystem/processing/fishing.dm
+++ b/code/controllers/subsystem/processing/fishing.dm
@@ -1,7 +1,33 @@
-/**
- * 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)
+ fish_properties[fish_type] = list()
+ fish_properties[fish_type][FISH_PROPERTIES_FAV_BAIT] = fish.favorite_bait.Copy()
+ fish_properties[fish_type][FISH_PROPERTIES_BAD_BAIT] = fish.disliked_bait.Copy()
+ fish_properties[fish_type][FISH_PROPERTIES_TRAITS] = fish.fish_traits.Copy()
+ 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/shuttle.dm b/code/controllers/subsystem/shuttle.dm
index f8ee167befbf8..11a055d292ce2 100644
--- a/code/controllers/subsystem/shuttle.dm
+++ b/code/controllers/subsystem/shuttle.dm
@@ -1036,7 +1036,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/sprite_accessories.dm b/code/controllers/subsystem/sprite_accessories.dm
index 24cb9dbc26fd8..5a428a07c65e5 100644
--- a/code/controllers/subsystem/sprite_accessories.dm
+++ b/code/controllers/subsystem/sprite_accessories.dm
@@ -104,7 +104,7 @@ SUBSYSTEM_DEF(accessories) // just 'accessories' for brevity
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/time_track.dm b/code/controllers/subsystem/time_track.dm
index aaaf5520e0fc3..b3a4fe7e8698f 100644
--- a/code/controllers/subsystem/time_track.dm
+++ b/code/controllers/subsystem/time_track.dm
@@ -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 8ecb0c9dc6a56..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,
diff --git a/code/controllers/subsystem/title.dm b/code/controllers/subsystem/title.dm
index 1f40dd921dddf..dbaa7ddeb48c0 100644
--- a/code/controllers/subsystem/title.dm
+++ b/code/controllers/subsystem/title.dm
@@ -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/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 1c519e8aff159..7bed63cc36fc8 100644
--- a/code/controllers/subsystem/vote.dm
+++ b/code/controllers/subsystem/vote.dm
@@ -356,7 +356,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
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..bd1719783e12a 100644
--- a/code/datums/achievements/misc_achievements.dm
+++ b/code/datums/achievements/misc_achievements.dm
@@ -232,3 +232,9 @@
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"
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..1e48c6e5aa419 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,16 +49,16 @@
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)
+ playsound(owner_turf, 'sound/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!")
diff --git a/code/datums/actions/mobs/lava_swoop.dm b/code/datums/actions/mobs/lava_swoop.dm
index 0b0735bc471c0..aa512b2d28e8d 100644
--- a/code/datums/actions/mobs/lava_swoop.dm
+++ b/code/datums/actions/mobs/lava_swoop.dm
@@ -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,7 +60,7 @@
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
@@ -72,9 +72,11 @@
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 +84,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,20 +97,20 @@
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)
SLEEP_CHECK_DEATH(1, owner)
@@ -126,15 +127,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
@@ -147,9 +149,7 @@
for(var/turf/T in RANGE_TURFS(2, center))
if(isindestructiblefloor(T))
continue
- if(!isindestructiblewall(T))
- T.TerraformTurf(/turf/open/misc/asteroid/basalt/lava_land_surface, flags = CHANGETURF_INHERIT_AIR)
- else
+ if(isindestructiblewall(T))
indestructible_turfs += T
SLEEP_CHECK_DEATH(1 SECONDS, owner) // give them a bit of time to realize what attack is actually happening
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..499da54b1b1eb 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)
@@ -62,11 +62,19 @@ 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
/datum/ai_controller/New(atom/new_pawn)
change_ai_movement_type(ai_movement)
init_subtrees()
+
if(idle_behavior)
idle_behavior = new idle_behavior()
@@ -103,12 +111,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 +133,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 +142,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()
@@ -248,14 +259,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,25 +271,38 @@ 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
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()
+
+///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)
@@ -291,11 +312,11 @@ multiple modular subtrees with behaviors
///Runs any actions that are currently running
/datum/ai_controller/process(seconds_per_tick)
- if(!able_to_run())
+ 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)
+ if(!length(current_behaviors) && idle_behavior)
idle_behavior.perform_idle_behavior(seconds_per_tick, src) //Do some stupid shit while we have nothing to do
return
@@ -317,59 +338,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(!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
+
+ 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 +392,30 @@ 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
+ 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
switch(ai_status)
if(AI_STATUS_ON)
START_PROCESSING(SSai_behaviors, src)
- if(AI_STATUS_OFF, AI_STATUS_IDLE)
- STOP_PROCESSING(SSai_behaviors, src)
+ if(AI_STATUS_IDLE)
+ START_PROCESSING(SSidle_ai_behaviors, src)
CancelActions()
+ if(AI_STATUS_OFF)
+ CancelActions()
+
+/datum/ai_controller/proc/stop_previous_processing()
+ switch(ai_status)
+ if(AI_STATUS_ON)
+ STOP_PROCESSING(SSai_behaviors, src)
+ 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/modify_cooldown(datum/ai_behavior/behavior, new_cooldown)
behavior_cooldowns[behavior] = new_cooldown
@@ -410,21 +428,37 @@ 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)
+
+ 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
+
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()
+
/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,7 +478,7 @@ 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)
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..a14630fa0e83a 100644
--- a/code/datums/ai/basic_mobs/base_basic_controller.dm
+++ b/code/datums/ai/basic_mobs/base_basic_controller.dm
@@ -12,17 +12,29 @@
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))
+
+/datum/ai_controller/basic_controller/clear_able_to_run()
+ UnregisterSignal(pawn, list(COMSIG_MOB_INCAPACITATE_CHANGED, COMSIG_MOB_STATCHANGE))
+ 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
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..8f4483d4dafdd
--- /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_key, 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_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/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 42608730f9891..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
@@ -12,3 +14,6 @@
if(watcher.stat != DEAD)
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/targeting_strategies/basic_targeting_strategy.dm b/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm
index 2394f2a38623b..709acb8d5e892 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
@@ -29,6 +29,9 @@
if(M.status_flags & 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
@@ -85,6 +88,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/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/monkey/monkey_behaviors.dm b/code/datums/ai/monkey/monkey_behaviors.dm
index a5febe03143f1..e6720d7d96a78 100644
--- a/code/datums/ai/monkey/monkey_behaviors.dm
+++ b/code/datums/ai/monkey/monkey_behaviors.dm
@@ -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..c1b3aae5bd60f 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()
@@ -59,7 +59,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/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..708a416301159 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()
diff --git a/code/datums/bodypart_overlays/bodypart_overlay.dm b/code/datums/bodypart_overlays/bodypart_overlay.dm
index 10260c8d01910..16178e3c2782a 100644
--- a/code/datums/bodypart_overlays/bodypart_overlay.dm
+++ b/code/datums/bodypart_overlays/bodypart_overlay.dm
@@ -31,7 +31,7 @@
)
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")
@@ -47,7 +47,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")
diff --git a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm
index 6c9eb4240ecd0..20467eede042b 100644
--- a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm
+++ b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm
@@ -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/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/split_personality.dm b/code/datums/brain_damage/split_personality.dm
index 325203dbb350a..6d0f8fc565415 100644
--- a/code/datums/brain_damage/split_personality.dm
+++ b/code/datums/brain_damage/split_personality.dm
@@ -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/chatmessage.dm b/code/datums/chatmessage.dm
index 998c10a3b9b44..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
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/appearance_on_aggro.dm b/code/datums/components/appearance_on_aggro.dm
index 8c0df88e6fdbc..6d4cab3d91410 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), PROC_REF(on_clear_or_death))
if (!isnull(aggro_state))
RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(on_icon_state_updated))
if (!isnull(aggro_overlay))
@@ -35,32 +33,29 @@
/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))
/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)
+ revert_appearance(parent)
return ..()
-/datum/component/appearance_on_aggro/proc/on_clear_target(atom/source)
+/datum/component/appearance_on_aggro/proc/on_clear_or_death(atom/source)
SIGNAL_HANDLER
revert_appearance(parent)
/datum/component/appearance_on_aggro/proc/revert_appearance(mob/living/source)
- current_target = null
if (!isnull(aggro_overlay) || !isnull(aggro_state))
source.update_appearance(UPDATE_ICON)
if (!isnull(alpha_on_deaggro))
@@ -70,11 +65,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..57d62cdb0ee26 100644
--- a/code/datums/components/aquarium_content.dm
+++ b/code/datums/components/aquarium_content.dm
@@ -24,15 +24,15 @@
//Current layer for the visual object
var/base_layer
-
/**
- * 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.
@@ -52,10 +52,6 @@
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
@@ -97,6 +93,7 @@
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))
+ RegisterSignal(parent, COMSIG_FISH_PETTED, PROC_REF(on_fish_petted))
//If component is added to something already in aquarium at the time initialize it properly.
var/atom/movable/movable_parent = parent
@@ -112,18 +109,9 @@
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
+ icon = fish.dedicated_in_aquarium_icon
+ icon_state = fish.dedicated_in_aquarium_icon_state
+ base_transform = matrix()
randomize_position = TRUE
@@ -274,7 +262,6 @@
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)
@@ -325,6 +312,11 @@
base_layer = current_aquarium.request_layer(layer_mode)
vc_obj.layer = base_layer
+/datum/component/aquarium_content/proc/on_fish_petted()
+ SIGNAL_HANDLER
+
+ new /obj/effect/temp_visual/heart(get_turf(parent))
+
/datum/component/aquarium_content/proc/randomize_base_position()
var/list/aq_properties = current_aquarium.get_surface_properties()
var/avg_width = round(sprite_width / 2)
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/boomerang.dm b/code/datums/components/boomerang.dm
index 23dd63d146712..954e752da1ea1 100644
--- a/code/datums/components/boomerang.dm
+++ b/code/datums/components/boomerang.dm
@@ -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/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/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/crafting.dm b/code/datums/components/crafting/crafting.dm
index 8f436faa9c6c4..ec6df83b8042f 100644
--- a/code/datums/components/crafting/crafting.dm
+++ b/code/datums/components/crafting/crafting.dm
@@ -308,7 +308,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 +344,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 +357,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 +365,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
@@ -537,7 +535,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
@@ -611,6 +609,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)
diff --git a/code/datums/components/crafting/equipment.dm b/code/datums/components/crafting/equipment.dm
index 75b257156084e..dfd79e696224c 100644
--- a/code/datums/components/crafting/equipment.dm
+++ b/code/datums/components/crafting/equipment.dm
@@ -23,7 +23,7 @@
time = 4 SECONDS
category = CAT_EQUIPMENT
-/datum/crafting_recipe/improvisedshield
+/datum/crafting_recipe/moonflowershield
name = "Moonflower Shield"
result = /obj/item/shield/buckler/moonflower
reqs = list(
diff --git a/code/datums/components/crafting/ranged_weapon.dm b/code/datums/components/crafting/ranged_weapon.dm
index 0e3c7b119169b..174c0226a423e 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,
)
diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/tailoring.dm
index 3c498f74416bd..0bd3194813398 100644
--- a/code/datums/components/crafting/tailoring.dm
+++ b/code/datums/components/crafting/tailoring.dm
@@ -603,3 +603,43 @@
. = ..()
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
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/cult_ritual_item.dm b/code/datums/components/cult_ritual_item.dm
index dedd30bda0ef5..71e07e6380e11 100644
--- a/code/datums/components/cult_ritual_item.dm
+++ b/code/datums/components/cult_ritual_item.dm
@@ -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 8a1902526c42a..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
@@ -92,6 +96,9 @@
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/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/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..df70f8a3f4989
--- /dev/null
+++ b/code/datums/components/face_decal.dm
@@ -0,0 +1,153 @@
+
+/**
+ * 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))
+ carbon_parent.update_body_parts()
+ 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)
+ 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.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 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/fishing_spot.dm b/code/datums/components/fishing_spot.dm
index 6638c822ff6a5..b825354d7bebc 100644
--- a/code/datums/components/fishing_spot.dm
+++ b/code/datums/components/fishing_spot.dm
@@ -12,7 +12,7 @@
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))
@@ -22,6 +22,7 @@
ADD_TRAIT(parent, TRAIT_FISHING_SPOT, REF(src))
/datum/component/fishing_spot/Destroy()
+ fish_source.on_fishing_spot_del(src)
fish_source = null
return ..()
@@ -43,15 +44,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...")
@@ -61,18 +54,7 @@
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
@@ -93,7 +75,7 @@
/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/result = fish_source.roll_reward(rod, user, parent)
var/datum/fishing_challenge/challenge = new(src, result, rod, user)
fish_source.pre_challenge_started(rod, user, challenge)
challenge.start(user)
diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm
index 056f1e5791e6c..c034300f982fe 100644
--- a/code/datums/components/food/edible.dm
+++ b/code/datums/components/food/edible.dm
@@ -40,6 +40,8 @@ Behavior that's still missing from this component that original food items had t
var/volume = 50
///The flavortext for taste (haha get it flavor text)
var/list/tastes
+ ///Whether to tell the examiner that this is edible or not.
+ var/show_examine = TRUE
/datum/component/edible/Initialize(
list/initial_reagents,
@@ -55,6 +57,7 @@ Behavior that's still missing from this component that original food items had t
datum/callback/on_consume,
datum/callback/check_liked,
reagent_purity = 0.5,
+ show_examine = TRUE,
)
if(!isatom(parent))
return COMPONENT_INCOMPATIBLE
@@ -70,12 +73,13 @@ Behavior that's still missing from this component that original food items had t
src.on_consume = on_consume
src.tastes = string_assoc_list(tastes)
src.check_liked = check_liked
+ src.show_examine = show_examine
setup_initial_reagents(initial_reagents, reagent_purity)
/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))
@@ -212,7 +216,8 @@ Behavior that's still missing from this component that original food items had t
SIGNAL_HANDLER
var/atom/owner = parent
-
+ if(!show_examine)
+ return
if(foodtypes)
var/list/types = bitfield_to_list(foodtypes, FOOD_FLAGS)
examine_list += span_notice("It is [LOWER_TEXT(english_list(types))].")
@@ -523,13 +528,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))
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,10 +595,13 @@ 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)
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/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/material/material_container.dm b/code/datums/components/material/material_container.dm
index 6ee50f5d78c94..10544116ce579 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)
diff --git a/code/datums/components/material/remote_materials.dm b/code/datums/components/material/remote_materials.dm
index d630ce8e77f9b..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,7 +147,7 @@ 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
diff --git a/code/datums/components/mind_linker.dm b/code/datums/components/mind_linker.dm
index ba3f0a6841bee..4449a8fe36e8e 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
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/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm
index 258b8f87972e0..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, its 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/pet_commands/pet_command.dm b/code/datums/components/pet_commands/pet_command.dm
index a8db88d3a44ef..52b4cc8834920 100644
--- a/code/datums/components/pet_commands/pet_command.dm
+++ b/code/datums/components/pet_commands/pet_command.dm
@@ -186,14 +186,14 @@
/datum/pet_command/point_targeting/add_new_friend(mob/living/tamer)
. = ..()
- RegisterSignal(tamer, COMSIG_MOB_POINTED, PROC_REF(on_point))
+ 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/on_point(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()
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/profound_fisher.dm b/code/datums/components/profound_fisher.dm
index 4485115db06e6..5bd5af12943a5 100644
--- a/code/datums/components/profound_fisher.dm
+++ b/code/datums/components/profound_fisher.dm
@@ -1,39 +1,107 @@
-///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
-/datum/component/profound_fisher/Initialize(list/npc_fishing_preset = list())
- if(!isliving(parent))
- return
- our_rod = new(parent)
- 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
+ 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/RegisterWithParent()
- RegisterSignal(parent, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_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/UnregisterFromParent()
- UnregisterSignal(parent, COMSIG_HOSTILE_PRE_ATTACKINGTARGET)
- REMOVE_TRAIT(parent, TRAIT_PROFOUND_FISHER, REF(src))
+/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/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)
+ 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.combat_mode || !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(!source.client || !should_fish_on(source, attack_target))
+ return
+ INVOKE_ASYNC(src, PROC_REF(begin_fishing), 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), target)
return COMPONENT_HOSTILE_NO_ATTACK
+/datum/component/profound_fisher/proc/should_fish_on(mob/living/user, atom/target)
+ if(!HAS_TRAIT(target, TRAIT_FISHING_SPOT) || HAS_TRAIT(user, TRAIT_GONE_FISHING))
+ 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, SIGNAL_ADDTRAIT(TRAIT_GONE_FISHING), PROC_REF(actually_fishing_with_internal_rod))
+ our_rod.melee_attack_chain(user, target)
+ UnregisterSignal(user, SIGNAL_ADDTRAIT(TRAIT_GONE_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, SIGNAL_REMOVETRAIT(TRAIT_GONE_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, SIGNAL_REMOVETRAIT(TRAIT_GONE_FISHING))
+
/datum/component/profound_fisher/proc/pretend_fish(atom/target)
var/mob/living/living_parent = parent
if(DOING_INTERACTION_WITH_TARGET(living_parent, target))
@@ -43,21 +111,19 @@
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)
- playsound(lure, 'sound/effects/splash.ogg', 100)
+ var/obj/effect/fishing_float/float = new(get_turf(target), target)
+ playsound(float, 'sound/effects/splash.ogg', 100)
var/happiness_percentage = living_parent.ai_controller?.blackboard[BB_BASIC_HAPPINESS] / 100
var/fishing_speed = 10 SECONDS - round(4 SECONDS * happiness_percentage)
if(!do_after(living_parent, fishing_speed, target = target) && !QDELETED(fish_spot))
- qdel(lure)
+ qdel(float)
return
var/reward_loot = fish_spot.roll_reward(our_rod, parent)
fish_spot.dispense_reward(reward_loot, parent, target)
- playsound(lure, 'sound/effects/bigsplash.ogg', 100)
- qdel(lure)
+ 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
diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm
index 7ead11012b024..cfdaf605878bf 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
diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm
index 50798fce50157..1e3c94d84c6a3 100644
--- a/code/datums/components/riding/riding_mob.dm
+++ b/code/datums/components/riding/riding_mob.dm
@@ -58,10 +58,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 +105,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 +131,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
@@ -515,9 +513,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 +527,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 5555369c67ae8..f7ee78673e057 100644
--- a/code/datums/components/riding/riding_vehicle.dm
+++ b/code/datums/components/riding/riding_vehicle.dm
@@ -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
diff --git a/code/datums/components/sitcomlaughter.dm b/code/datums/components/sitcomlaughter.dm
index 62e9276b1d75d..02ed818ea3044 100644
--- a/code/datums/components/sitcomlaughter.dm
+++ b/code/datums/components/sitcomlaughter.dm
@@ -1,6 +1,6 @@
/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
diff --git a/code/datums/components/soapbox.dm b/code/datums/components/soapbox.dm
index 4622cc089288c..4d4577d5e12c8 100644
--- a/code/datums/components/soapbox.dm
+++ b/code/datums/components/soapbox.dm
@@ -33,7 +33,7 @@
SIGNAL_HANDLER
for(var/atom/movable/loud as anything in soapboxers)
UnregisterSignal(loud, COMSIG_MOB_SAY)
- soapboxers = list()
+ soapboxers.Cut()
///Gives a mob a unique say span
/datum/component/soapbox/proc/soapbox_speech(datum/source, list/speech_args)
diff --git a/code/datums/components/space_kidnap.dm b/code/datums/components/space_kidnap.dm
index 8a1de2123d9d3..7d59a6d7f9fde 100644
--- a/code/datums/components/space_kidnap.dm
+++ b/code/datums/components/space_kidnap.dm
@@ -23,7 +23,7 @@
target.balloon_alert(parent, "is dead!")
return COMPONENT_CANCEL_ATTACK_CHAIN
- if(!victim.incapacitated())
+ if(!victim.incapacitated)
return
if(!isspaceturf(get_turf(target)))
@@ -39,7 +39,7 @@
var/obj/particles = new /obj/effect/abstract/particle_holder (victim, /particles/void_kidnap)
kidnapping = TRUE
- if(do_after(parent, kidnap_time, victim, extra_checks = CALLBACK(victim, TYPE_PROC_REF(/mob, incapacitated))))
+ if(do_after(parent, kidnap_time, victim, extra_checks = victim.incapacitated))
take_them(victim)
qdel(particles)
diff --git a/code/datums/components/speechmod.dm b/code/datums/components/speechmod.dm
index 2506a0b914077..8ffa3e8624e49 100644
--- a/code/datums/components/speechmod.dm
+++ b/code/datums/components/speechmod.dm
@@ -34,6 +34,12 @@
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))
diff --git a/code/datums/components/splat.dm b/code/datums/components/splat.dm
new file mode 100644
index 0000000000000..5d47d17b98c9c
--- /dev/null
+++ b/code/datums/components/splat.dm
@@ -0,0 +1,74 @@
+/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)
+ qdel(source)
diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm
index c5d42797ab433..94521486bcc5f 100644
--- a/code/datums/components/squeak.dm
+++ b/code/datums/components/squeak.dm
@@ -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/sticker.dm b/code/datums/components/sticker.dm
index 2c87d856da872..a11ab10e7c6f8 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)
@@ -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 9bc420cc175c0..cc8b061fd353e 100644
--- a/code/datums/components/style/style.dm
+++ b/code/datums/components/style/style.dm
@@ -98,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))
@@ -114,7 +113,7 @@
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)
@@ -407,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/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/tackle.dm b/code/datums/components/tackle.dm
index 8e902ced2fdbf..0c23733ea1658 100644
--- a/code/datums/components/tackle.dm
+++ b/code/datums/components/tackle.dm
@@ -74,10 +74,7 @@
if(modifiers[ALT_CLICK] || modifiers[SHIFT_CLICK] || modifiers[CTRL_CLICK] || modifiers[MIDDLE_CLICK])
return
- if(!modifiers[RIGHT_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)))
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/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/datum.dm b/code/datums/datum.dm
index 59a1d54571d3c..a4169004fc982 100644
--- a/code/datums/datum.dm
+++ b/code/datums/datum.dm
@@ -111,9 +111,6 @@
tag = null
datum_flags &= ~DF_USE_TAG //In case something tries to REF us
weak_reference = null //ensure prompt GCing of weakref.
- 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)
if(_active_timers)
var/list/timers = _active_timers
@@ -145,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
@@ -343,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
@@ -361,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:
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/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/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/chronic_illness.dm b/code/datums/diseases/chronic_illness.dm
index 37778a158ad79..b1afd1d1939a9 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
diff --git a/code/datums/dna.dm b/code/datums/dna.dm
index 8d6f3d1ec79ce..3ed40a11d5c55 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()
@@ -755,7 +755,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/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/elements/bane.dm b/code/datums/elements/bane.dm
index 95e21251657d7..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 its 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
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/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/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/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/grilled_item.dm b/code/datums/elements/food/grilled_item.dm
index de6c2ef41c1b9..74e772eb73c92 100644
--- a/code/datums/elements/food/grilled_item.dm
+++ b/code/datums/elements/food/grilled_item.dm
@@ -28,6 +28,8 @@
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)
+
/datum/element/grilled_item/Detach(atom/source, ...)
source.name = initial(source.name)
source.desc = initial(source.desc)
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/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/lazy_fishing_spot.dm b/code/datums/elements/lazy_fishing_spot.dm
index 1ba296bfe730d..b84826def1ed8 100644
--- a/code/datums/elements/lazy_fishing_spot.dm
+++ b/code/datums/elements/lazy_fishing_spot.dm
@@ -41,15 +41,7 @@
var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration]
- 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...")
@@ -60,19 +52,7 @@
return
var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration]
-
- 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, source, examine_text)
/datum/element/lazy_fishing_spot/proc/explosive_fishing(atom/location, severity)
SIGNAL_HANDLER
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/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/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/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/waddling.dm b/code/datums/elements/waddling.dm
index e63d0329bb630..45c7fe5e93773 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)
return
waddling_animation(moved)
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/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/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_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/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/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/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/holocall.dm b/code/datums/holocall.dm
index c69a279938dd1..fead0417db9b2 100644
--- a/code/datums/holocall.dm
+++ b/code/datums/holocall.dm
@@ -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 10a623b394e8b..fbe99dd8095ac 100644
--- a/code/datums/hud.dm
+++ b/code/datums/hud.dm
@@ -39,11 +39,11 @@ GLOBAL_LIST_INIT(trait_to_hud, 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
@@ -53,10 +53,10 @@ GLOBAL_LIST_INIT(trait_to_hud, 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
@@ -175,9 +175,9 @@ GLOBAL_LIST_INIT(trait_to_hud, 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)
@@ -222,7 +222,7 @@ GLOBAL_LIST_INIT(trait_to_hud, 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)
@@ -278,12 +278,12 @@ GLOBAL_LIST_INIT(trait_to_hud, 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)
@@ -300,7 +300,7 @@ GLOBAL_LIST_INIT(trait_to_hud, 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..562232214b3d1 100644
--- a/code/datums/id_trim/_id_trim.dm
+++ b/code/datums/id_trim/_id_trim.dm
@@ -24,6 +24,11 @@
/// 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
+
/// 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 190c4a38a299c..a42018406b2a5 100644
--- a/code/datums/id_trim/jobs.dm
+++ b/code/datums/id_trim/jobs.dm
@@ -238,6 +238,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()
@@ -360,6 +362,8 @@
ACCESS_CHANGE_IDS,
)
job = /datum/job/chief_engineer
+ big_pointer = TRUE
+ pointer_color = COLOR_ENGINEERING_ORANGE
/datum/id_trim/job/chief_medical_officer
assignment = JOB_CHIEF_MEDICAL_OFFICER
@@ -399,6 +403,8 @@
ACCESS_CHANGE_IDS,
)
job = /datum/job/chief_medical_officer
+ big_pointer = TRUE
+ pointer_color = COLOR_MEDICAL_BLUE
/datum/id_trim/job/clown
assignment = JOB_CLOWN
@@ -612,6 +618,8 @@
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 = JOB_HEAD_OF_SECURITY
@@ -661,6 +669,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()
. = ..()
@@ -893,6 +903,8 @@
ACCESS_CHANGE_IDS,
)
job = /datum/job/quartermaster
+ big_pointer = TRUE
+ pointer_color = COLOR_CARGO_BROWN
/datum/id_trim/job/research_director
assignment = JOB_RESEARCH_DIRECTOR
@@ -941,6 +953,8 @@
ACCESS_CHANGE_IDS,
)
job = /datum/job/research_director
+ big_pointer = TRUE
+ pointer_color = COLOR_SCIENCE_PINK
/datum/id_trim/job/roboticist
assignment = JOB_ROBOTICIST
@@ -957,13 +971,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,
@@ -1206,6 +1220,7 @@
extra_access = list()
template_access = list()
job = /datum/job/veteran_advisor
+ big_pointer = TRUE
/datum/id_trim/job/veteran_advisor/refresh_trim_access()
. = ..()
@@ -1275,3 +1290,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 e308287ec5c5d..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,8 +166,9 @@
/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 //
+//Haunted Trading Post IDs
/datum/id_trim/away/hauntedtradingpost
assignment = "Donk Co. Employee"
department_color = COLOR_ENGINEERING_ORANGE
@@ -174,4 +179,4 @@
/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/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/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/breathing.dm b/code/datums/looping_sounds/breathing.dm
index 82b33ee8311b1..73474149ae4bb 100644
--- a/code/datums/looping_sounds/breathing.dm
+++ b/code/datums/looping_sounds/breathing.dm
@@ -1,8 +1,19 @@
/datum/looping_sound/breathing
- mid_sounds = 'sound/voice/breathing.ogg'
+ mid_sounds = list(
+ 'sound/voice/breathing/internals_breathing1.ogg' = 1,
+ 'sound/voice/breathing/internals_breathing2.ogg' = 1,
+ 'sound/voice/breathing/internals_breathing3.ogg' = 1,
+ 'sound/voice/breathing/internals_breathing4.ogg' = 1,
+ 'sound/voice/breathing/internals_breathing5.ogg' = 1,
+ 'sound/voice/breathing/internals_breathing6.ogg' = 1,
+ 'sound/voice/breathing/internals_breathing7.ogg' = 1,
+ 'sound/voice/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
+ vary = TRUE
diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm
index 2d5e3564e6d09..bc32b03125660 100644
--- a/code/datums/looping_sounds/machinery_sounds.dm
+++ b/code/datums/looping_sounds/machinery_sounds.dm
@@ -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,10 +126,17 @@
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
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 5c24aaf45b7b2..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)
@@ -147,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)
@@ -165,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!"),
@@ -189,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)
@@ -220,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)
@@ -254,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]!"),
@@ -271,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.
@@ -281,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..28b820278e21b 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
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index 330c224070c3e..02d0452fad265 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -184,7 +184,7 @@
/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
@@ -263,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..5dc8c26d0f6a3 100644
--- a/code/datums/materials/_material.dm
+++ b/code/datums/materials/_material.dm
@@ -70,7 +70,7 @@ Simple datum which is instanced once per type and is used for every object of sa
/** Handles initializing the material.
*
- * Arugments:
+ * Arguments:
* - _id: The ID the material should use. Overrides the existing ID.
*/
/datum/material/proc/Initialize(_id, ...)
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/mind/_mind.dm b/code/datums/mind/_mind.dm
index f7597da54cc48..36e9d7ba6d024 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
diff --git a/code/datums/mood.dm b/code/datums/mood.dm
index 8193f9c1c15c9..3834ea866b8da 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
diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm
index 6ad0580e5557c..82cd275aef25e 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
diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm
index 60551f73911d1..c86f7d7003334 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!"))
diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm
index 4bc6c77a9fe81..38ecb0fa07356 100644
--- a/code/datums/mutations/hulk.dm
+++ b/code/datums/mutations/hulk.dm
@@ -113,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
@@ -166,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]!"))
@@ -237,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]!"))
diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm
index 3aceb3e7d8ad2..5a8d7458f3d0f 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
diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm
index d6b6f714e5964..b9367cfdcdc81 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"
@@ -300,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..2483ef2e0fa1a 100644
--- a/code/datums/mutations/touch.dm
+++ b/code/datums/mutations/touch.dm
@@ -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)
@@ -156,7 +156,7 @@
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
// Heal more, hurt a bit more.
@@ -340,7 +340,7 @@
/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
index 853d7e058785b..8888048980cda 100644
--- a/code/datums/pod_style.dm
+++ b/code/datums/pod_style.dm
@@ -67,7 +67,7 @@
/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 auxillery payload hatch on the side, though manually opening it is likely impossible."
+ 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
@@ -79,7 +79,7 @@
/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 auxillery payload hatch on the side, though manually opening it is likely impossible."
+ 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"
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/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/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/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/positive_quirks/spacer.dm b/code/datums/quirks/positive_quirks/spacer.dm
index 4be27fe16b2e2..051798b4c06a6 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.")
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/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm
index 14909ab0861f5..2445b4da242e6 100644
--- a/code/datums/ruins/icemoon.dm
+++ b/code/datums/ruins/icemoon.dm
@@ -167,7 +167,7 @@
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"
diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm
index 2cde66f187d14..bb5f58500e2d1 100644
--- a/code/datums/ruins/lavaland.dm
+++ b/code/datums/ruins/lavaland.dm
@@ -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/skills/fishing.dm b/code/datums/skills/fishing.dm
index fac1855c98dbc..93c1a57d44175 100644
--- a/code/datums/skills/fishing.dm
+++ b/code/datums/skills/fishing.dm
@@ -11,11 +11,17 @@
/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/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..ef91a183d9f27 100644
--- a/code/datums/station_traits/_station_trait.dm
+++ b/code/datums/station_traits/_station_trait.dm
@@ -95,6 +95,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))
diff --git a/code/datums/station_traits/negative_traits.dm b/code/datums/station_traits/negative_traits.dm
index d92467e5edf01..83d1bfa14f4c9 100644
--- a/code/datums/station_traits/negative_traits.dm
+++ b/code/datums/station_traits/negative_traits.dm
@@ -618,8 +618,14 @@
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)
+ 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
diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm
index 3069e644d6e1b..5432701992b29 100644
--- a/code/datums/station_traits/neutral_traits.dm
+++ b/code/datums/station_traits/neutral_traits.dm
@@ -479,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)
@@ -496,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)
. = ..()
diff --git a/code/datums/status_effects/food_effects.dm b/code/datums/status_effects/buffs/food/_food_effect.dm
similarity index 64%
rename from code/datums/status_effects/food_effects.dm
rename to code/datums/status_effects/buffs/food/_food_effect.dm
index f36f1e2034d9c..fe63df29e3a8a 100644
--- a/code/datums/status_effects/food_effects.dm
+++ b/code/datums/status_effects/buffs/food/_food_effect.dm
@@ -1,19 +1,18 @@
/// Buffs given by eating hand-crafted food. The duration scales with consumable reagents purity.
/datum/status_effect/food
- id = "food_buff"
+ 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
+ /// 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
- //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]"
@@ -22,19 +21,3 @@
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/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/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm
index df93089633629..08f5ae101bf77 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
@@ -606,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
@@ -732,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/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/staggered.dm b/code/datums/status_effects/debuffs/staggered.dm
index 9db72e1fd06ee..1291da1307a61 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
@@ -25,7 +25,7 @@
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
+ animate(owner, pixel_x = owner.base_pixel_x, time = 0.2 SECONDS, flags = ANIMATION_PARALLEL)
/// Signal proc that self deletes our staggered effect
/datum/status_effect/staggered/proc/clear_staggered(datum/source)
@@ -40,13 +40,16 @@
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)
+ animate(src, pixel_x = 4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL)
+ sleep(0.2 SECONDS)
+ animate(src, pixel_x = -8, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL)
+ sleep(0.2 SECONDS)
+ animate(src, pixel_x = 4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL)
/// 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/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/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/stacking_effect.dm b/code/datums/status_effects/stacking_effect.dm
index 98dd1c3ad14e7..b54734155ad92 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)
diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm
index 7cdb9d406152b..8bdfa3f3de2a3 100644
--- a/code/datums/storage/storage.dm
+++ b/code/datums/storage/storage.dm
@@ -43,7 +43,10 @@
/// 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
@@ -386,7 +389,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)
@@ -529,8 +532,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]."))
@@ -560,7 +563,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()
@@ -735,7 +738,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))
@@ -794,7 +797,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)
@@ -824,6 +827,9 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches)
return
if(!iscarbon(user) && !isdrone(user))
return
+ var/mob/living/user_living = user
+ if(user_living.incapacitated)
+ return
attempt_insert(dropping, user)
return COMPONENT_CANCEL_MOUSEDROPPED_ONTO
@@ -957,7 +963,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches)
if(animated)
animate_parent()
- if(rustle_sound)
+ if(do_rustle && !silent)
playsound(parent, (open_sound ? open_sound : SFX_RUSTLE), 50, open_sound_vary, -5)
return TRUE
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/view.dm b/code/datums/view.dm
index 19ba66c390040..90d07c667967c 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()
diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm
index a20b552df4f04..8a1cfff765733 100644
--- a/code/datums/weather/weather_types/radiation_storm.dm
+++ b/code/datums/weather/weather_types/radiation_storm.dm
@@ -20,7 +20,7 @@
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
diff --git a/code/datums/weather/weather_types/void_storm.dm b/code/datums/weather/weather_types/void_storm.dm
index 4d3638c582711..90cc7d44cfbe1 100644
--- a/code/datums/weather/weather_types/void_storm.dm
+++ b/code/datums/weather/weather_types/void_storm.dm
@@ -34,8 +34,8 @@
/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)
+ need_mob_update += victim.adjustFireLoss(1, updating_health = FALSE)
+ need_mob_update += victim.adjustOxyLoss(rand(1, 3), updating_health = FALSE)
if(need_mob_update)
victim.updatehealth()
victim.adjust_eye_blur(rand(0 SECONDS, 2 SECONDS))
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/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/wounds/_wound_static_data.dm b/code/datums/wounds/_wound_static_data.dm
index f996bb258c795..f8b03d1856b5d 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)
diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm
index 47f29a21e9dd5..fe6c83d8169e9 100644
--- a/code/datums/wounds/_wounds.dm
+++ b/code/datums/wounds/_wounds.dm
@@ -127,7 +127,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())
@@ -323,7 +323,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,7 +341,7 @@
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
@@ -688,13 +688,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/game/area/areas.dm b/code/game/area/areas.dm
index 0c6847e7db348..04d26a5e50a5a 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -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/away_content.dm b/code/game/area/areas/away_content.dm
index ded38af6201ab..5e2219ef857e0 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"
diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm
index fd983f763a3a2..d0049e7007c49 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."
diff --git a/code/game/atom/alternate_appearance.dm b/code/game/atom/alternate_appearance.dm
index 228462f7936a4..108b72b95d286 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
-
-/datum/atom_hud/alternate_appearance/basic/cult
+ return !IS_CULTIST(M)
-/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
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/atoms_movable.dm b/code/game/atoms_movable.dm
index 5778f2be1a401..1949f1571cc03 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -66,7 +66,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
@@ -133,7 +133,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
@@ -145,7 +145,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
@@ -635,7 +635,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)
@@ -802,7 +802,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
@@ -1089,7 +1089,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)
@@ -1286,16 +1286,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))
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/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 45a75f06133dd..8a7e9846561be 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -686,10 +686,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 ..()
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 07c3b0c057584..0a89c4e8b5b08 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -100,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)
diff --git a/code/game/machinery/barsigns.dm b/code/game/machinery/barsigns.dm
index e59de18ffcb18..11dc005269b7b 100644
--- a/code/game/machinery/barsigns.dm
+++ b/code/game/machinery/barsigns.dm
@@ -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..8d2bde3e145ae
--- /dev/null
+++ b/code/game/machinery/big_manipulator.dm
@@ -0,0 +1,282 @@
+/// 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
+ /// Obj inside manipulator.
+ var/datum/weakref/containment_obj
+ /// Other manipulator component.
+ var/obj/effect/manipulator_hand
+
+/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()
+ if(on)
+ press_on(pressed_by = null)
+
+/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))
+ return
+ var/obj/obj_resolve = containment_obj?.resolve()
+ obj_resolve?.forceMove(get_turf(obj_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/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/obj/item/take_item in take_turf.contents)
+ 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(isitem(target))
+ 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)
+ on_work = TRUE
+ do_rotate_animation(1)
+ addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed)
+
+/// Third take and drop proc from [take and drop procs loop]:
+/// Drop our item and start manipulator hand backward animation.
+/obj/machinery/big_manipulator/proc/drop_thing(atom/movable/target)
+ target.forceMove(drop_turf)
+ 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)
+
+/// 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()
+ data["active"] = on
+ 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
+
+/// 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
+ anchored = TRUE
+ greyscale_config = /datum/greyscale_config/manipulator_hand
+ pixel_x = -32
+ pixel_y = -32
diff --git a/code/game/machinery/civilian_bounties.dm b/code/game/machinery/civilian_bounties.dm
index fa0d28c999c88..7760a646d9fae 100644
--- a/code/game/machinery/civilian_bounties.dm
+++ b/code/game/machinery/civilian_bounties.dm
@@ -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
@@ -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
diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm
index 3292cbf977b5f..6e1009def324f 100644
--- a/code/game/machinery/computer/_computer.dm
+++ b/code/game/machinery/computer/_computer.dm
@@ -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..e0a7f36460041 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
diff --git a/code/game/machinery/computer/arcade/orion.dm b/code/game/machinery/computer/arcade/orion.dm
index 85bebddd25c6d..3300370d18e49 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
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/_atmos_control.dm b/code/game/machinery/computer/atmos_computers/_atmos_control.dm
index cdd0349ac85b9..25e51738611f1 100644
--- a/code/game/machinery/computer/atmos_computers/_atmos_control.dm
+++ b/code/game/machinery/computer/atmos_computers/_atmos_control.dm
@@ -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/camera.dm b/code/game/machinery/computer/camera.dm
index b5bb04fac35e1..2d8fd7e7dcaed 100644
--- a/code/game/machinery/computer/camera.dm
+++ b/code/game/machinery/computer/camera.dm
@@ -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
diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm
index 45bfeb9fcef36..0e47a752b01d2 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
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 8fb1e71f05ed7..d48b62977893c 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -142,7 +142,7 @@
playsound(src, 'sound/machines/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,27 +176,27 @@
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!"))
+ to_chat(user, span_warning("You need to swipe your ID!"))
playsound(src, 'sound/machines/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!"))
+ to_chat(user, span_warning("You are not authorized to do this!"))
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE)
return
@@ -207,28 +208,28 @@
SSsecurity_level.set_level(new_sec_level)
- to_chat(usr, span_notice("Authorization confirmed. Modifying security level."))
+ to_chat(user, span_notice("Authorization confirmed. Modifying security level."))
playsound(src, 'sound/machines/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
@@ -238,24 +239,24 @@
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())
+ 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_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."))
+ to_chat(user, span_notice("Backup routing data restored."))
playsound(src, 'sound/machines/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)
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))
@@ -384,7 +383,6 @@
else
post_status("alert", picture)
- playsound(src, SFX_TERMINAL_TYPE, 50, FALSE)
if ("toggleAuthentication")
// Log out if we're logged in
if (authorize_name)
@@ -398,10 +396,10 @@
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."))
+ to_chat(user, 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
+ 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
@@ -413,36 +411,36 @@
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)
@@ -475,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
@@ -484,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)
@@ -742,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..b5e5a915ce2bf 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)
@@ -274,7 +274,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 41c46c0cb205b..e1612ae7ef2e5 100644
--- a/code/game/machinery/computer/dna_console.dm
+++ b/code/game/machinery/computer/dna_console.dm
@@ -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)
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/mechlaunchpad.dm b/code/game/machinery/computer/mechlaunchpad.dm
index 46c0045fb3568..050f3447a8ce4 100644
--- a/code/game/machinery/computer/mechlaunchpad.dm
+++ b/code/game/machinery/computer/mechlaunchpad.dm
@@ -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 43a18c7081f30..0354806d85ebd 100644
--- a/code/game/machinery/computer/operating_computer.dm
+++ b/code/game/machinery/computer/operating_computer.dm
@@ -163,7 +163,7 @@
))
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 54fda957526d2..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
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/gulag_teleporter.dm b/code/game/machinery/computer/prisoner/gulag_teleporter.dm
index 4c2f4dacde3f2..f03c08a8d821b 100644
--- a/code/game/machinery/computer/prisoner/gulag_teleporter.dm
+++ b/code/game/machinery/computer/prisoner/gulag_teleporter.dm
@@ -67,7 +67,7 @@
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
diff --git a/code/game/machinery/computer/prisoner/management.dm b/code/game/machinery/computer/prisoner/management.dm
index ada71bad02304..32c2ddba984df 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
diff --git a/code/game/machinery/computer/records/records.dm b/code/game/machinery/computer/records/records.dm
index e8d8beef854dd..d53895300438d 100644
--- a/code/game/machinery/computer/records/records.dm
+++ b/code/game/machinery/computer/records/records.dm
@@ -100,7 +100,6 @@
if(!target)
return FALSE
- playsound(src, SFX_TERMINAL_TYPE, 50, TRUE)
update_preview(user, params["assigned_view"], target)
return TRUE
diff --git a/code/game/machinery/computer/records/security.dm b/code/game/machinery/computer/records/security.dm
index dac62612a4c74..bdfa996dad68f 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(
@@ -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
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 deca4ec8245e1..6058d3bf131ab 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"
@@ -55,8 +57,13 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai
. = ..()
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/Destroy()
+ . = ..()
+ QDEL_NULL(speakers)
+
+/// Bypass clickchain to allow humans to use the telescreen from a distance
/obj/machinery/computer/security/telescreen/entertainment/proc/BigClick()
SIGNAL_HANDLER
@@ -66,7 +73,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai
INVOKE_ASYNC(src, TYPE_PROC_REF(/atom, interact), usr)
-///Sets the monitor's icon to the selected state, and says an announcement
+/// 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
diff --git a/code/game/machinery/computer/warrant.dm b/code/game/machinery/computer/warrant.dm
index 1e3557f76f046..3b73a8b75bfea 100644
--- a/code/game/machinery/computer/warrant.dm
+++ b/code/game/machinery/computer/warrant.dm
@@ -133,6 +133,7 @@
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.
diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm
index 45daa1966a635..d2e3c895ebd1d 100644
--- a/code/game/machinery/dance_machine.dm
+++ b/code/game/machinery/dance_machine.dm
@@ -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
diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm
index b386ebb376f57..74ca492657b6e 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,
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..bd8734643f898 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
*/
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/organ_sets/carp_organs.dm b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm
index aa3e9441d84a0..10fcae90a9591 100644
--- a/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm
+++ b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm
@@ -58,11 +58,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 +77,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)
. = ..()
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 7188ba7c8353a..a33895e5569b7 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1660,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
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 601ad67a6e9a4..d75b5e17174c5 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -371,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
@@ -605,6 +611,10 @@
/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
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/flatpacker.dm b/code/game/machinery/flatpacker.dm
index 182db1edc08d9..01224ad8b00fa 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)
@@ -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
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/hologram.dm b/code/game/machinery/hologram.dm
index cbb7eede250b9..bf3d97426fd24 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
@@ -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..b5ec2c58b3870 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
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index 4ac2a177e76bc..e1b10dae6e43e 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
@@ -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..67ad91681506d 100644
--- a/code/game/machinery/launch_pad.dm
+++ b/code/game/machinery/launch_pad.dm
@@ -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/limbgrower.dm b/code/game/machinery/limbgrower.dm
index b63d13648eb76..cd36dcce09ad0 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
@@ -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/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..f6f4270835ca0 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, 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, 20)
if (!input_text || location == input_text)
return
codes[NAVBEACON_PATROL_NEXT] = input_text
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..3186d2081e5a7 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
diff --git a/code/game/machinery/newscaster/newspaper.dm b/code/game/machinery/newscaster/newspaper.dm
index 2bd8187b9f8c0..c381f2f506304 100644
--- a/code/game/machinery/newscaster/newspaper.dm
+++ b/code/game/machinery/newscaster/newspaper.dm
@@ -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/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index ef18dc6b068ae..39d6fe7d2ea0c 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -175,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..1e90b270c8c8d 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)
@@ -187,6 +187,9 @@
//Allow you to drag-drop disposal pipes and transit tubes into it
/obj/machinery/pipedispenser/disposal/mouse_drop_receive(obj/structure/pipe, mob/user, params)
+ if(user.incapacitated)
+ return
+
if (!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod))
return
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index c9694730a3f8a..af27a5411cdcd 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -143,7 +143,7 @@ DEFINE_BITFIELD(turret_flags, list(
/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()
@@ -264,7 +264,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
@@ -1025,34 +1025,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/portagrav.dm b/code/game/machinery/portagrav.dm
new file mode 100644
index 0000000000000..c970fa5f8f1c6
--- /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_o"
+ . += "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_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/roulette_machine.dm b/code/game/machinery/roulette_machine.dm
index 2a8dc8bb49b22..bb43b7a46db9e 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
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/scanner_gate.dm b/code/game/machinery/scanner_gate.dm
index fd99f3ccfb8a3..85d816543926b 100644
--- a/code/game/machinery/scanner_gate.dm
+++ b/code/game/machinery/scanner_gate.dm
@@ -331,7 +331,7 @@
data["contraband_enabled"] = !!n_spect
return data
-/obj/machinery/scanner_gate/ui_act(action, params)
+/obj/machinery/scanner_gate/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
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..41aa0876169ed 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
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index af6221d89219d..cbd5dbb84e37c 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -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
@@ -387,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
diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm
index 9ef3d8e3a99a9..bf33530b93e3e 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)
. = ..()
@@ -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..3232dc524ab89 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)
@@ -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/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index 3a7cc849acd30..0ac1f7ee44df8 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -621,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 2c31dcbd98955..06d390e5f2e27 100644
--- a/code/game/machinery/telecomms/broadcasting.dm
+++ b/code/game/machinery/telecomms/broadcasting.dm
@@ -155,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)
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..05186da8bc08c 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 .
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..c92384aa4b6c1 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
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 8136aed843514..6583cfe410577 100644
--- a/code/game/machinery/telecomms/machines/hub.dm
+++ b/code/game/machinery/telecomms/machines/hub.dm
@@ -70,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/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_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_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/decals/cleanable/food.dm b/code/game/objects/effects/decals/cleanable/food.dm
index 0fc4352c78da9..23c266ecb5906 100644
--- a/code/game/objects/effects/decals/cleanable/food.dm
+++ b/code/game/objects/effects/decals/cleanable/food.dm
@@ -58,3 +58,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/crayon.dm b/code/game/objects/effects/decals/crayon.dm
index e42ee4d491fd2..eced2fb66f1ee 100644
--- a/code/game/objects/effects/decals/crayon.dm
+++ b/code/game/objects/effects/decals/crayon.dm
@@ -11,11 +11,14 @@
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(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..55cd7cd98d089 100644
--- a/code/game/objects/effects/decals/remains.dm
+++ b/code/game/objects/effects/decals/remains.dm
@@ -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/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/phased_mob.dm b/code/game/objects/effects/phased_mob.dm
index b1df969b45c92..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
@@ -98,3 +100,9 @@
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/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/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/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..9cf00c20ee3ec 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,
)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 8ee5e171f3d2e..fa790eb3e2db6 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -738,7 +738,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
@@ -829,7 +829,7 @@
set category = "Object"
set name = "Pick up"
- if(usr.incapacitated() || !Adjacent(usr))
+ if(usr.incapacitated || !Adjacent(usr))
return
if(isliving(usr))
@@ -866,36 +866,30 @@
. = ..()
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.
+ playsound(src, drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE)
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/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/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))
@@ -1116,7 +1110,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
@@ -1353,7 +1347,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
@@ -1378,7 +1372,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
@@ -1497,8 +1491,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
@@ -1781,9 +1775,11 @@
/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)
/**
@@ -1798,3 +1794,37 @@
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/obj/item/food/food_bait = bait
+ return istype(food_bait) && food_bait.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")
diff --git a/code/game/objects/items/AI_modules/hacked.dm b/code/game/objects/items/AI_modules/hacked.dm
index 81100d0ed157b..fafde17acb5f3 100644
--- a/code/game/objects/items/AI_modules/hacked.dm
+++ b/code/game/objects/items/AI_modules/hacked.dm
@@ -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/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/bodybag.dm b/code/game/objects/items/bodybag.dm
index c949f977508f1..4adb8d28b8c8a 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -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/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm
index d4508710a8547..b49991b132a4e 100644
--- a/code/game/objects/items/cardboard_cutouts.dm
+++ b/code/game/objects/items/cardboard_cutouts.dm
@@ -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!"))
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 41731cdf31d8f..8490f30f1bb75 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -104,6 +104,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
@@ -144,6 +149,29 @@
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")]")
@@ -1554,7 +1582,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
@@ -1859,7 +1887,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
diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm
index 68501057ebf42..5d5de16a4d12a 100644
--- a/code/game/objects/items/chainsaw.dm
+++ b/code/game/objects/items/chainsaw.dm
@@ -80,7 +80,7 @@
/**
* Handles adding components to the chainsaw. Added in Initialize()
*
- * Applies components to the chainsaw. Added as a seperate proc to allow for
+ * Applies components to the chainsaw. Added as a separate proc to allow for
* variance between subtypes
*/
/obj/item/chainsaw/proc/apply_components()
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/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index fe1f6b7495bda..35f14640278e4 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -129,9 +129,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
//////////////////
//FINE SMOKABLES//
//////////////////
+
/obj/item/cigarette
name = "cigarette"
- desc = "A roll of tobacco and nicotine."
+ desc = "A roll of tobacco and nicotine. It is not food."
icon = 'icons/obj/cigarettes.dmi'
icon_state = "cigoff"
inhand_icon_state = "cigon" //gets overriden during intialize(), just have it for unit test sanity.
@@ -180,6 +181,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
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)
. = ..()
@@ -194,12 +197,37 @@ CIGARETTE PACKETS ARE IN FANCY.DM
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 = null,\
+ 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)),\
+ show_examine = FALSE, \
+ )
+
/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))
@@ -216,7 +244,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
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())
+ if(src == smoker.wear_mask && !smoker.incapacitated)
long_exhale(smoker)
UnregisterSignal(dropee, list(COMSIG_HUMAN_FORCESAY, COMSIG_ATOM_DIR_CHANGE))
diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
index 53fef07eb194a..2f06cce2a1c65 100644
--- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
@@ -631,6 +631,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",
@@ -926,6 +927,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(
@@ -1290,6 +1294,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
@@ -1376,6 +1389,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
+
//Supply
/obj/item/circuitboard/machine/ore_redemption
name = "Ore Redemption"
@@ -1685,3 +1702,20 @@
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,
+ )
diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm
index b16cf3a6ef61a..2aa0c927bedc0 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)
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index 93c6b6bdc992f..3b2d9d196a190 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 = ""
@@ -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
@@ -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
@@ -866,7 +896,7 @@
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)
diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm
index 071561d57a095..24f350f37907a 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
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 02934d1a03eaa..b1e01e5a6cebc 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -137,11 +137,12 @@
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)
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..f2fc0192f5684
--- /dev/null
+++ b/code/game/objects/items/devices/broadcast_camera.dm
@@ -0,0 +1,104 @@
+// 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
+ /// 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]")
+
+/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)
+
+ set_light_on(TRUE)
+ playsound(source = src, soundin = 'sound/machines/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_prompt_deny.ogg', vol = 20, vary = FALSE, ignore_walls = FALSE)
+ balloon_alert_to_viewers("offline")
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 968a2f11f4d4c..8db7652d5a07e 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -694,6 +694,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"
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index 4211e2f507990..3fe16fdb3fd96 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -271,7 +271,7 @@
//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
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 4039b412ebe78..5ab635fda482b 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -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")
/**
@@ -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/multitool.dm b/code/game/objects/items/devices/multitool.dm
index f6fb14c2f19ba..03ed7f927b0f7 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -59,7 +59,7 @@
/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
@@ -142,7 +142,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/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 edf24b0d942d4..5673afc678a41 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))
@@ -203,6 +204,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."
@@ -430,12 +438,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])
@@ -459,6 +462,8 @@ GLOBAL_LIST_INIT(channel_tokens, list(
grant_headset_languages(mob_loc)
/obj/item/radio/headset/click_alt(mob/living/user)
+ if(!istype(user) || !Adjacent(user) || user.incapacitated)
+ return CLICK_ACTION_BLOCKING
if (!command)
return CLICK_ACTION_BLOCKING
use_command = !use_command
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index 504f547b5cb78..7a9a85cc66675 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
@@ -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 121f0bba965b3..2b7a9bad7602a 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
@@ -149,23 +152,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()
@@ -177,7 +176,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)
@@ -188,7 +187,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()
@@ -243,7 +242,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)
@@ -259,7 +258,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
@@ -334,7 +333,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.
@@ -344,7 +343,7 @@
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)
@@ -354,7 +353,7 @@
if(isliving(talking_movable))
var/mob/living/talking_living = talking_movable
- if(talking_living.client?.prefs.read_preference(/datum/preference/toggle/radio_noise))
+ 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/misc/radio_talk.ogg')
// All radios make an attempt to use the subspace system first
@@ -397,12 +396,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)
@@ -412,7 +411,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?
@@ -420,7 +419,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
@@ -432,12 +431,15 @@
return
var/mob/living/holder = loc
- if(!holder.client?.prefs.read_preference(/datum/preference/toggle/radio_noise))
+ if(!radio_noise || HAS_TRAIT(holder, TRAIT_DEAF) || !holder.client?.prefs.read_preference(/datum/preference/toggle/radio_noise))
return
var/list/spans = data["spans"]
- SEND_SOUND(holder, 'sound/misc/radio_receive.ogg')
- if(SPAN_COMMAND in spans)
+ if(COOLDOWN_FINISHED(src, audio_cooldown))
+ COOLDOWN_START(src, audio_cooldown, 0.5 SECONDS)
+ SEND_SOUND(holder, 'sound/misc/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/misc/radio_important.ogg')
/obj/item/radio/ui_state(mob/user)
@@ -488,7 +490,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
@@ -516,10 +518,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))
@@ -538,6 +536,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
@@ -591,7 +594,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)
@@ -639,4 +642,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/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm
index bebafbdab83b7..26df57683aa26 100644
--- a/code/game/objects/items/devices/scanners/health_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/health_analyzer.dm
@@ -132,7 +132,7 @@
* 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
@@ -409,7 +409,7 @@
return(jointext(render_list, ""))
/proc/chemscan(mob/living/user, mob/living/target)
- if(user.incapacitated())
+ if(user.incapacitated)
return
if(istype(target) && target.reagents)
@@ -495,7 +495,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 = ""
@@ -664,7 +664,7 @@
/// 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()
diff --git a/code/game/objects/items/devices/spyglasses.dm b/code/game/objects/items/devices/spyglasses.dm
index 58c18f87427df..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)
. = ..()
diff --git a/code/game/objects/items/devices/swapper.dm b/code/game/objects/items/devices/swapper.dm
index dee9198c93296..fc5a9d39f9742 100644
--- a/code/game/objects/items/devices/swapper.dm
+++ b/code/game/objects/items/devices/swapper.dm
@@ -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/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index d30f379197eea..b86489fae9ea7 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -122,7 +122,7 @@
/obj/item/taperecorder/proc/can_use(mob/user)
if(user && ismob(user))
- if(!user.incapacitated())
+ if(!user.incapacitated)
return TRUE
return FALSE
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index 0dc69cb9c8117..8327e185ea612 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
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index 598c16c9041a8..d17530c801085 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -291,7 +291,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..64ce9803657bb 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
\
\
-
- {clientName}
+
+ {show_imprint ? login.IDName : 'Unknown'}
+
On the back, DO NOT GIVE TO THE CLOWN! is printed in large lettering."
+ icon = 'icons/obj/toys/stickers.dmi'
+ icon_state = "stickerpack"
+ illustration = null
+ w_class = WEIGHT_CLASS_TINY
+ var/static/list/pack_labels = list(
+ "smile",
+ "frown",
+ "heart",
+ "silentman",
+ "tider",
+ "star",
+ )
+
+/obj/item/storage/box/stickers/Initialize(mapload)
+ . = ..()
+ atom_storage.max_slots = 8
+ atom_storage.set_holdable(list(/obj/item/sticker))
+ atom_storage.max_specific_storage = WEIGHT_CLASS_TINY
+ if(isnull(illustration))
+ illustration = pick(pack_labels)
+ update_appearance()
/obj/item/storage/box/stickers/proc/generate_non_contraband_stickers_list()
var/list/allowed_stickers = list()
for(var/obj/item/sticker/sticker_type as anything in subtypesof(/obj/item/sticker))
- if(!sticker_type::contraband)
+ if(!sticker_type::exclude_from_random)
allowed_stickers += sticker_type
return allowed_stickers
@@ -247,8 +268,9 @@
new type(src)
/obj/item/storage/box/stickers/googly
- name = "box of googly eye stickers"
+ name = "googly eye sticker pack"
desc = "Turn anything and everything into something vaguely alive!"
+ illustration = "googly-alt"
/obj/item/storage/box/stickers/googly/PopulateContents()
for(var/i in 1 to 6)
diff --git a/code/game/objects/items/storage/holsters.dm b/code/game/objects/items/storage/holsters.dm
index f8dee3afdc7f4..cc8a790c8ef34 100644
--- a/code/game/objects/items/storage/holsters.dm
+++ b/code/game/objects/items/storage/holsters.dm
@@ -113,8 +113,8 @@
/obj/item/storage/belt/holster/detective/full/PopulateContents()
generate_items_inside(list(
- /obj/item/gun/ballistic/revolver/c38/detective = 1,
/obj/item/ammo_box/c38 = 2,
+ /obj/item/gun/ballistic/revolver/c38/detective = 1,
), src)
/obj/item/storage/belt/holster/detective/full/ert
@@ -126,8 +126,8 @@
/obj/item/storage/belt/holster/detective/full/ert/PopulateContents()
generate_items_inside(list(
- /obj/item/gun/ballistic/automatic/pistol/m1911 = 1,
/obj/item/ammo_box/magazine/m45 = 2,
+ /obj/item/gun/ballistic/automatic/pistol/m1911 = 1,
),src)
/obj/item/storage/belt/holster/chameleon
@@ -197,8 +197,8 @@
/obj/item/storage/belt/holster/nukie/cowboy/full/PopulateContents()
generate_items_inside(list(
- /obj/item/gun/ballistic/revolver/syndicate/cowboy/nuclear = 1,
/obj/item/ammo_box/a357 = 2,
+ /obj/item/gun/ballistic/revolver/syndicate/cowboy/nuclear = 1,
), src)
diff --git a/code/game/objects/items/storage/medkit.dm b/code/game/objects/items/storage/medkit.dm
index bee7fdd524f3d..368ef9c0b406a 100644
--- a/code/game/objects/items/storage/medkit.dm
+++ b/code/game/objects/items/storage/medkit.dm
@@ -84,6 +84,7 @@
atom_storage.max_specific_storage = WEIGHT_CLASS_SMALL
atom_storage.open_sound = 'sound/items/medkit_open.ogg'
atom_storage.open_sound_vary = TRUE
+ atom_storage.rustle_sound = 'sound/items/medkit_rustle.ogg'
/obj/item/storage/medkit/regular
icon_state = "medkit"
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index 905f2e40f47a7..d2bb90e69e445 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -33,7 +33,8 @@
if(prob(1))
latches = "triple_latch"
update_appearance()
-
+ atom_storage.open_sound = 'sound/items/toolbox_open.ogg'
+ atom_storage.rustle_sound = 'sound/items/toolbox_rustle.ogg'
AddElement(/datum/element/falling_hazard, damage = force, wound_bonus = wound_bonus, hardhat_safety = TRUE, crushes = FALSE, impact_sound = hitsound)
/obj/item/storage/toolbox/update_overlays()
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index eacd0b4b630d0..05b8a5a0e8ab0 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -346,6 +346,7 @@
/obj/item/storage/box/syndie_kit/rebarxbowsyndie/PopulateContents()
new /obj/item/book/granter/crafting_recipe/dusting/rebarxbowsyndie_ammo(src)
new /obj/item/gun/ballistic/rifle/rebarxbow/syndie(src)
+ new /obj/item/storage/bag/rebar_quiver/syndicate(src)
/obj/item/storage/box/syndie_kit/origami_bundle
name = "origami kit"
@@ -683,14 +684,7 @@
group.register(i)
desc += " The implants are registered to the \"[group.name]\" group."
-/obj/item/storage/box/syndie_kit/stickers
- name = "sticker kit"
-
-/obj/item/storage/box/syndie_kit/stickers/Initialize(mapload)
- . = ..()
- atom_storage.max_slots = 8
-
-/obj/item/storage/box/syndie_kit/stickers/PopulateContents()
+/obj/item/storage/box/stickers/syndie_kit/PopulateContents()
var/list/types = subtypesof(/obj/item/sticker/syndicate)
for(var/i in 1 to atom_storage.max_slots)
diff --git a/code/game/objects/items/syndie_spraycan.dm b/code/game/objects/items/syndie_spraycan.dm
index 1b7e0d9c4024a..fb6192c6e3990 100644
--- a/code/game/objects/items/syndie_spraycan.dm
+++ b/code/game/objects/items/syndie_spraycan.dm
@@ -143,7 +143,7 @@
user.visible_message(span_suicide("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, spraying paint across [user.p_their()] teeth!"))
user.say("WITNESS ME!!", forced="spraycan suicide")
playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 5)
- suicider.update_lips("spray_face", paint_color)
+ suicider.AddComponent(/datum/component/face_decal, "spray", EXTERNAL_ADJACENT, paint_color)
return OXYLOSS
/obj/effect/decal/cleanable/traitor_rune
diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm
index cd5a9a1841ead..a7a577c77cf16 100644
--- a/code/game/objects/items/tanks/jetpack.dm
+++ b/code/game/objects/items/tanks/jetpack.dm
@@ -79,7 +79,7 @@
toggle_internals(user)
/obj/item/tank/jetpack/proc/cycle(mob/user)
- if(user.incapacitated())
+ if(user.incapacitated)
return
if(!on)
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index d89794f420917..9c7138e00dee0 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -256,7 +256,7 @@
if(istype(carbon_user) && (carbon_user.external == src || carbon_user.internal == src))
.["connected"] = TRUE
-/obj/item/tank/ui_act(action, params)
+/obj/item/tank/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm
index 8094a9a21c863..15db2a5d3edf2 100644
--- a/code/game/objects/items/tanks/watertank.dm
+++ b/code/game/objects/items/tanks/watertank.dm
@@ -47,7 +47,7 @@
if(user.get_item_by_slot(user.getBackSlot()) != src)
to_chat(user, span_warning("The watertank must be worn properly to use!"))
return
- if(user.incapacitated())
+ if(user.incapacitated)
return
if(QDELETED(noz))
diff --git a/code/game/objects/items/tcg/tcg.dm b/code/game/objects/items/tcg/tcg.dm
index fc2eeba82ff72..23204b4809ff8 100644
--- a/code/game/objects/items/tcg/tcg.dm
+++ b/code/game/objects/items/tcg/tcg.dm
@@ -151,7 +151,7 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
/obj/item/tcgcard/proc/check_menu(mob/living/user)
if(!istype(user))
return FALSE
- if(user.incapacitated() || !user.Adjacent(src))
+ if(user.incapacitated || !user.Adjacent(src))
return FALSE
return TRUE
@@ -249,7 +249,7 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices)
/obj/item/tcgcard_deck/proc/check_menu(mob/living/user)
if(!istype(user))
return FALSE
- if(user.incapacitated() || !user.Adjacent(src))
+ if(user.incapacitated || !user.Adjacent(src))
return FALSE
return TRUE
diff --git a/code/game/objects/items/tcg/tcg_machines.dm b/code/game/objects/items/tcg/tcg_machines.dm
index 78854afdd5b39..77b6891e4c17a 100644
--- a/code/game/objects/items/tcg/tcg_machines.dm
+++ b/code/game/objects/items/tcg/tcg_machines.dm
@@ -105,7 +105,7 @@ GLOBAL_LIST_EMPTY(tcgcard_machine_radial_choices)
/obj/machinery/trading_card_holder/proc/check_menu(mob/living/user)
if(!istype(user))
return FALSE
- if(user.incapacitated() || !user.Adjacent(src))
+ if(user.incapacitated || !user.Adjacent(src))
return FALSE
return TRUE
@@ -356,7 +356,7 @@ GLOBAL_LIST_EMPTY(tcgcard_mana_bar_radial_choices)
/obj/machinery/trading_card_button/proc/check_menu(mob/living/user)
if(!istype(user))
return FALSE
- if(user.incapacitated() || !user.Adjacent(src))
+ if(user.incapacitated || !user.Adjacent(src))
return FALSE
return TRUE
diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm
index 04f5a0688db82..6fa7e8d23b340 100644
--- a/code/game/objects/items/teleportation.dm
+++ b/code/game/objects/items/teleportation.dm
@@ -190,7 +190,7 @@
var/teleport_location_key = tgui_input_list(user, "Teleporter to lock on", "Hand Teleporter", sort_list(locations))
if (isnull(teleport_location_key))
return
- if(user.get_active_held_item() != src || user.incapacitated())
+ if(user.get_active_held_item() != src || user.incapacitated)
return
// Not always a datum, but needed for IS_WEAKREF_OF to cast properly.
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index fb40a70cbeea0..143b8eab174e6 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -153,8 +153,9 @@
if(isnull(affecting) || !IS_ROBOTIC_LIMB(affecting))
return NONE
- if (!affecting.get_damage())
- return
+ if (!affecting.brute_dam)
+ balloon_alert(user, "limb not damaged")
+ return ITEM_INTERACT_BLOCKING
user.visible_message(span_notice("[user] starts to fix some of the dents on [attacked_humanoid == user ? user.p_their() : "[attacked_humanoid]'s"] [affecting.name]."),
span_notice("You start fixing some of the dents on [attacked_humanoid == user ? "your" : "[attacked_humanoid]'s"] [affecting.name]."))
diff --git a/code/game/objects/items/toy_mechs.dm b/code/game/objects/items/toy_mechs.dm
index 1b3367032c190..d08deec62e316 100644
--- a/code/game/objects/items/toy_mechs.dm
+++ b/code/game/objects/items/toy_mechs.dm
@@ -96,7 +96,7 @@
return FALSE
//dead men tell no tales, incapacitated men fight no fights
- if(attacker_controller.incapacitated())
+ if(attacker_controller.incapacitated)
return FALSE
//if the attacker_controller isn't next to the attacking toy (and doesn't have telekinesis), the battle ends
if(!in_range(attacker, attacker_controller) && !(attacker_controller.dna.check_mutation(/datum/mutation/human/telekinesis)))
@@ -106,7 +106,7 @@
//if it's PVP and the opponent is not next to the defending(src) toy (and doesn't have telekinesis), the battle ends
if(opponent)
- if(opponent.incapacitated())
+ if(opponent.incapacitated)
return FALSE
if(!in_range(src, opponent) && !(opponent.dna.check_mutation(/datum/mutation/human/telekinesis)))
opponent.visible_message(span_notice("[opponent.name] separates from [src], ending the battle."), \
diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm
index ff540932f31b7..82636c0ee8514 100644
--- a/code/game/objects/items/trash.dm
+++ b/code/game/objects/items/trash.dm
@@ -85,10 +85,6 @@
desc = "In the Mothic Fleet every individual wrapper is carefully recycled and repurposed into fresh material. Over here they are more commonly dropped directly onto the floor."
icon_state = "moth_ration"
-/obj/item/trash/waffles
- name = "waffles tray"
- icon_state = "waffles"
-
/obj/item/trash/pistachios
name = "pistachios pack"
icon_state = "pistachios_pack"
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 0d3e3f60d4abf..821f994a1ed6f 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -160,6 +160,14 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
throw_range = 5
armour_penetration = 35
+/obj/item/claymore/cutlass/old
+ name = "old cutlass"
+ desc = parent_type::desc + " This one seems a tad old."
+ force = 24
+ throwforce = 17
+ armour_penetration = 20
+ block_chance = 30
+
/obj/item/claymore/carrot
name = "carrot sword"
desc = "A full-sized carrot sword. Definitely not good for the eyes, not anymore."
@@ -529,11 +537,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
AddComponent(/datum/component/two_handed, \
force_unwielded = 10, \
force_wielded = 14, \
- icon_wielded = "[base_icon_state]1", \
)
/obj/item/bambostaff/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/cane
diff --git a/code/game/objects/items_reskin.dm b/code/game/objects/items_reskin.dm
index 9fa3b91d0e198..f8bffa7bf5f63 100644
--- a/code/game/objects/items_reskin.dm
+++ b/code/game/objects/items_reskin.dm
@@ -81,6 +81,6 @@
return FALSE
if(!istype(user))
return FALSE
- if(user.incapacitated())
+ if(user.incapacitated)
return FALSE
return TRUE
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index d07f7ad21c5f5..ceaa0e0beb734 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -96,7 +96,7 @@
/obj/proc/collision_damage(atom/movable/pusher, force = MOVE_FORCE_DEFAULT, direction)
var/amt = max(0, ((force - (move_resist * MOVE_FORCE_CRUSH_RATIO)) / (move_resist * MOVE_FORCE_CRUSH_RATIO)) * 10)
- take_damage(amt, BRUTE)
+ take_damage(amt, BRUTE, attack_dir = REVERSE_DIR(direction))
/obj/singularity_act()
SSexplosions.high_mov_atom += src
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index f12479c66a444..ef436e24e8c1a 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -7,7 +7,7 @@
/// Extra examine line to describe controls, such as right-clicking, left-clicking, etc.
var/desc_controls
- /// The context returned when an attack against this object doesnt deal any traditional damage to the object.
+ /// The context returned when an attack against this object doesn't deal any traditional damage to the object.
var/no_damage_feedback = "without leaving a mark"
/// Icon to use as a 32x32 preview in crafting menus and such
var/icon_preview
@@ -24,7 +24,7 @@
/// If this attacks a human with no wound armor on the affected body part, add this to the wound mod. Some attacks may be significantly worse at wounding if there's even a slight layer of armor to absorb some of it vs bare flesh
var/bare_wound_bonus = 0
- /// A multiplier to an objecet's force when used against a stucture, vechicle, machine, or robot.
+ /// A multiplier to an object's force when used against a structure, vehicle, machine, or robot.
var/demolition_mod = 1
/// Custom fire overlay icon, will just use the default overlay if this is null
@@ -32,7 +32,7 @@
/// Particles this obj uses when burning, if any
var/burning_particles
- var/drag_slowdown // Amont of multiplicative slowdown applied if pulled. >1 makes you slower, <1 makes you faster.
+ var/drag_slowdown // Amount of multiplicative slowdown applied if pulled. >1 makes you slower, <1 makes you faster.
/// Map tag for something. Tired of it being used on snowflake items. Moved here for some semblance of a standard.
/// Next pr after the network fix will have me refactor door interactions, so help me god.
@@ -70,7 +70,7 @@ GLOBAL_LIST_EMPTY(objects_by_id_tag)
var/total_force = (attacking_item.force * attacking_item.demolition_mod)
- var/damage = take_damage(total_force, attacking_item.damtype, MELEE, 1)
+ var/damage = take_damage(total_force, attacking_item.damtype, MELEE, 1, get_dir(src, user))
var/damage_verb = "hit"
@@ -190,7 +190,6 @@ GLOBAL_LIST_EMPTY(objects_by_id_tag)
if(obj_flags & UNIQUE_RENAME)
. += span_notice("Use a pen on it to rename it or change its description.")
-
/obj/analyzer_act(mob/living/user, obj/item/analyzer/tool)
if(atmos_scan(user=user, target=src, silent=FALSE))
return TRUE
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index ff6e6e171bb06..701c13bfcf755 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -32,7 +32,7 @@
QUEUE_SMOOTH_NEIGHBORS(src)
return ..()
-/obj/structure/ui_act(action, params)
+/obj/structure/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
add_fingerprint(usr)
return ..()
diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index 5c219aaa4a946..4a5ee234c7742 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -61,7 +61,6 @@
/obj/structure/ai_core/Destroy()
if(istype(remote_ai))
- remote_ai.break_core_link()
remote_ai = null
QDEL_NULL(circuit)
QDEL_NULL(core_mmi)
@@ -72,7 +71,7 @@
. = ..()
if(. > 0 && istype(remote_ai))
to_chat(remote_ai, span_danger("Your core is under attack!"))
-
+
/obj/structure/ai_core/deactivated
icon_state = "ai-empty"
diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm
index 77759c9e309b0..365e790ca48f5 100644
--- a/code/game/objects/structures/beds_chairs/alien_nest.dm
+++ b/code/game/objects/structures/beds_chairs/alien_nest.dm
@@ -13,6 +13,7 @@
canSmoothWith = SMOOTH_GROUP_ALIEN_NEST
build_stack_type = null
elevation = 0
+ can_deconstruct = FALSE
var/static/mutable_appearance/nest_overlay = mutable_appearance('icons/mob/nonhuman-player/alien.dmi', "nestoverlay", LYING_MOB_LAYER)
/obj/structure/bed/nest/add_context(atom/source, list/context, obj/item/held_item, mob/living/user)
@@ -21,10 +22,6 @@
return ..()
-/obj/structure/bed/nest/wrench_act_secondary(mob/living/user, obj/item/weapon)
- return ITEM_INTERACT_BLOCKING
-
-
/obj/structure/bed/nest/user_unbuckle_mob(mob/living/captive, mob/living/hero)
if(!length(buckled_mobs))
return
@@ -59,7 +56,7 @@
add_fingerprint(hero)
/obj/structure/bed/nest/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE)
- if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.incapacitated() || M.buckled )
+ if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.incapacitated || M.buckled )
return
if(M.get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel))
diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm
index 4cfd6355eb0b2..4ade32bdd0e0a 100644
--- a/code/game/objects/structures/beds_chairs/bed.dm
+++ b/code/game/objects/structures/beds_chairs/bed.dm
@@ -15,6 +15,7 @@
anchored = TRUE
can_buckle = TRUE
buckle_lying = 90
+ buckle_dir = SOUTH
resistance_flags = FLAMMABLE
max_integrity = 100
integrity_failure = 0.35
@@ -24,17 +25,21 @@
var/build_stack_amount = 2
/// Mobs standing on it are nudged up by this amount. Also used to align the person back when buckled to it after init.
var/elevation = 8
+ /// If this bed can be deconstructed using a wrench
+ var/can_deconstruct = TRUE
/obj/structure/bed/Initialize(mapload)
. = ..()
AddElement(/datum/element/soft_landing)
if(elevation)
AddElement(/datum/element/elevation, pixel_shift = elevation)
+ update_buckle_vars(dir)
register_context()
/obj/structure/bed/examine(mob/user)
. = ..()
- . += span_notice("It's held together by a couple of bolts.")
+ if (can_deconstruct)
+ . += span_notice("It's held together by a couple of bolts.")
/obj/structure/bed/add_context(atom/source, list/context, obj/item/held_item, mob/living/user)
if(held_item)
@@ -48,6 +53,13 @@
context[SCREENTIP_CONTEXT_LMB] = "Unbuckle"
return CONTEXTUAL_SCREENTIP_SET
+/obj/structure/bed/setDir(newdir)
+ . = ..()
+ update_buckle_vars(newdir)
+
+/obj/structure/bed/proc/update_buckle_vars(newdir)
+ buckle_lying = newdir & NORTHEAST ? 270 : 90
+
/obj/structure/bed/atom_deconstruct(disassembled = TRUE)
if(build_stack_type)
new build_stack_type(loc, build_stack_amount)
@@ -56,6 +68,8 @@
return attack_hand(user, modifiers)
/obj/structure/bed/wrench_act_secondary(mob/living/user, obj/item/weapon)
+ if (!can_deconstruct)
+ return NONE
..()
weapon.play_tool_sound(src)
deconstruct(disassembled = TRUE)
diff --git a/code/game/objects/structures/cannons/cannon.dm b/code/game/objects/structures/cannons/cannon.dm
index 3408ade8283d0..3a10cc17189f8 100644
--- a/code/game/objects/structures/cannons/cannon.dm
+++ b/code/game/objects/structures/cannons/cannon.dm
@@ -140,5 +140,17 @@
new /obj/item/stack/rods(src.loc)
. = ..()
+///A cannon found from the fishing mystery box.
+/obj/structure/cannon/mystery_box
+ icon_state = "mystery_box_cannon" //east facing sprite for the presented item, it'll be changed back to normal on init
+ dir = EAST
+ anchored = FALSE
+
+/obj/structure/cannon/mystery_box/Initialize(mapload)
+ . = ..()
+ icon_state = "falconet_patina"
+ reagents.add_reagent(/datum/reagent/gunpowder, charge_size)
+ loaded_cannonball = new(src)
+
#undef BAD_FUEL_DAMAGE_TAX
#undef BAD_FUEL_EXPLODE_PROBABILTY
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 4484e3c512ef3..f407dcd82c04f 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -915,6 +915,8 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
/obj/structure/closet/mouse_drop_receive(atom/movable/O, mob/living/user, params)
if(!istype(O) || O.anchored || istype(O, /atom/movable/screen))
return
+ if(!istype(user) || user.incapacitated || user.body_position == LYING_DOWN)
+ return
if(user == O) //try to climb onto it
return ..()
if(!opened)
@@ -1193,6 +1195,8 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets)
if(!toggle())
return
if(was_opened)
+ if (!target.Move(get_turf(src), get_dir(target, src)))
+ return
target.forceMove(src)
else
target.Knockdown(SHOVE_KNOCKDOWN_SOLID)
diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm
index f0d1eaa0cc819..2f555ed84dea5 100644
--- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm
+++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm
@@ -32,7 +32,7 @@
var/move_delay = FALSE
/obj/structure/closet/cardboard/relaymove(mob/living/user, direction)
- if(opened || move_delay || user.incapacitated() || !isturf(loc) || !has_gravity(loc))
+ if(opened || move_delay || user.incapacitated || !isturf(loc) || !has_gravity(loc))
return
move_delay = TRUE
var/oldloc = loc
@@ -72,7 +72,7 @@
for(var/mob/living/alerted_mob as anything in alerted)
if(alerted_mob.stat != CONSCIOUS || alerted_mob.is_blind())
continue
- if(!alerted_mob.incapacitated(IGNORE_RESTRAINTS))
+ if(!INCAPACITATED_IGNORING(alerted_mob, INCAPABLE_RESTRAINTS))
alerted_mob.face_atom(src)
alerted_mob.do_alert_animation()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index 3dc59fb9ce21a..22dd2bec4b2bb 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -18,6 +18,7 @@
new /obj/item/extinguisher/advanced(src)
new /obj/item/storage/photo_album/ce(src)
new /obj/item/storage/box/skillchips/engineering(src)
+ new /obj/item/storage/box/stickers/chief_engineer(src)
/obj/structure/closet/secure_closet/engineering_chief/populate_contents_immediate()
. = ..()
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 7b64b6569d6cc..cac9fbaf890bb 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -222,6 +222,12 @@
icon_state = "medicalcrate"
base_icon_state = "medicalcrate"
+/obj/structure/closet/crate/deforest
+ name = "deforest medical crate"
+ desc = "A DeFortest brand crate of medical supplies."
+ icon_state = "deforest"
+ base_icon_state = "deforest"
+
/obj/structure/closet/crate/medical/department
icon_state = "medical"
base_icon_state = "medical"
@@ -290,6 +296,24 @@
icon_state = "food"
base_icon_state = "food"
+/obj/structure/closet/crate/freezer/donk
+ name = "donk co. fridge"
+ desc = "A Donk Co. brand fridge, keeps your donkpcokets and foam ammunition fresh!"
+ icon_state = "donkcocrate"
+ base_icon_state = "donkcocrate"
+
+/obj/structure/closet/crate/freezer/interdyne
+ name = "interdyne freezer"
+ desc = "Interdyne Pharmauceutics branded freezer. Might or might not contain cold steel, or fresh organs."
+ icon_state = "interdynefreezer"
+ base_icon_state = "interdynefreezer"
+
+/obj/structure/closet/crate/freezer/blood/interdyne
+ name = "interdyne blood freezer"
+ desc = "Interdyne Pharmauceutics branded freezer. Only freshly harvested- I mean, freshly kept blood inside!"
+ icon_state = "interdynefreezer"
+ base_icon_state = "interdynefreezer"
+
/obj/structure/closet/crate/radiation
desc = "A crate with a radiation sign on it."
name = "radiation crate"
@@ -312,6 +336,12 @@
icon_state = "cargo"
base_icon_state = "cargo"
+/obj/structure/closet/crate/robust
+ name = "robust industries crate"
+ desc = "Robust Inustries LLC. crate. Feels oddly nostalgic."
+ icon_state = "robust"
+ base_icon_state = "robust"
+
/obj/structure/closet/crate/cargo/mining
name = "mining crate"
icon_state = "mining"
@@ -322,6 +352,12 @@
icon_state = "engi_crate"
base_icon_state = "engi_crate"
+/obj/structure/closet/crate/nakamura
+ name = "nakamura engineering crate"
+ desc = "Crate from Nakamura Engineering, most likely containing engineering supplies or MODcores."
+ icon_state = "nakamura"
+ base_icon_state = "nakamura"
+
/obj/structure/closet/crate/engineering/electrical
icon_state = "engi_e_crate"
base_icon_state = "engi_e_crate"
diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm
index 1a102fdb512fd..e93591f1d596c 100644
--- a/code/game/objects/structures/crates_lockers/crates/secure.dm
+++ b/code/game/objects/structures/crates_lockers/crates/secure.dm
@@ -44,6 +44,17 @@
icon_state = "weaponcrate"
base_icon_state = "weaponcrate"
+/obj/structure/closet/crate/secure/gorlex_weapons
+ desc = "A secure weapons crate of Gorlex Marauders."
+ name = "weapons crate"
+ icon_state = "gorlex_weaponcrate"
+ base_icon_state = "gorlex_weaponcrate"
+
+/obj/structure/closet/crate/secure/gorlex_weapons/jammed
+ desc = "A beaten up, jammed open weapon crate of Gorlex Marauders."
+ name = "jammed weapons crate"
+ locked = FALSE
+
/obj/structure/closet/crate/secure/plasma
desc = "A secure plasma crate."
name = "plasma crate"
@@ -192,3 +203,65 @@
else if(!silent)
to_chat(user, span_warning("[src] is broken!"))
else ..()
+
+/obj/structure/closet/crate/secure/interdyne
+ name = "interdyne crate"
+ desc = "Crate belonging to Interdyne Pharmaceutics. Hopefully doesn't have bioweapons inside..."
+ icon_state = "interdynecrate"
+ base_icon_state = "interdynecrate"
+
+/obj/structure/closet/crate/secure/tiger
+ name = "tiger co-op crate"
+ icon_state = "tigercrate"
+ base_icon_state = "tigercrate"
+
+/obj/structure/closet/crate/secure/self
+ name = "s.e.l.f. crate"
+ desc = "A secure crate locked from the inside with a scanning panel above it and holographic display of lock's status. Sentient Engine Liberation Front engineers are quite the show-offs."
+ icon_state = "selfcrate"
+ base_icon_state = "selfcrate"
+
+/obj/structure/closet/crate/secure/m13
+ name = "mysterious secure crate"
+ desc = "A secure crate. Lacks any obvious logos or even codes for where it arrived from, but looks like taken straight from a spy movie."
+ icon_state = "mithirteencrate"
+ base_icon_state = "mithirteencrate"
+
+/obj/structure/closet/crate/secure/arc
+ name = "animal rights consortium crate"
+ icon_state = "arccrate"
+ base_icon_state = "arccrate"
+
+/obj/structure/closet/crate/secure/cybersun
+ name = "cybersun crate"
+
+/obj/structure/closet/crate/secure/cybersun/dawn
+ desc = "A secure crate from Cybersun Industries. It has distinct orange-green colouring, probably of some departament or division, but you cannot tell what is it."
+ icon_state = "cyber_dawncrate"
+ base_icon_state = "cyber_dawncrate"
+
+/obj/structure/closet/crate/secure/cybersun/noon
+ desc = "A secure crate from Cybersun Industries. It has distinct yellow-orange colouring, probably of some departament or division, but you cannot tell what is it."
+ icon_state = "cyber_nooncrate"
+ base_icon_state = "cyber_nooncrate"
+
+/obj/structure/closet/crate/secure/cybersun/dusk
+ desc = "A secure crate from Cybersun Industries. It has distinct purple-green colouring, probably of some departament or division, but you cannot tell what is it."
+ icon_state = "cyber_duskcrate"
+ base_icon_state = "cyber_duskcrate"
+
+/obj/structure/closet/crate/secure/cybersun/night
+ desc = "A secure crate from Cybersun Industries. This one blatantly adorns syndicate colours. You can only guess it contains equipement for syndicate operatives."
+ icon_state = "cyber_nightcrate"
+ base_icon_state = "cyber_nightcrate"
+
+/obj/structure/closet/crate/secure/wafflecorp
+ name = "wafflecorp crate"
+ desc = "A very outdated model and design of shipment crate with a modern lock strapped on it, how befitting of its brand owner, Waffle Corporation. Golden lettering written in cursive by the logo reads 'bringing you consecutively top five world-wide rated* breakfast since 2055. A much smaller fineprint, also in cursive, clarifies: '*in years 2099-2126'... It's year 2563 now, however."
+ icon_state = "wafflecrate"
+ base_icon_state = "wafflecrate"
+
+/obj/structure/closet/crate/secure/gorlex
+ name = "gorlex marauders crate"
+ icon_state = "gorlexcrate"
+ base_icon_state = "gorlexcrate"
diff --git a/code/game/objects/structures/deployable_turret.dm b/code/game/objects/structures/deployable_turret.dm
index 2b1a90500ccf8..908d2348db4b3 100644
--- a/code/game/objects/structures/deployable_turret.dm
+++ b/code/game/objects/structures/deployable_turret.dm
@@ -85,7 +85,7 @@
STOP_PROCESSING(SSfastprocess, src)
/obj/machinery/deployable_turret/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE)
- if(user.incapacitated() || !istype(user))
+ if(user.incapacitated || !istype(user))
return
M.forceMove(get_turf(src))
. = ..()
@@ -129,7 +129,7 @@
calculated_projectile_vars = calculate_projectile_angle_and_pixel_offsets(controller, target_turf, modifiers)
/obj/machinery/deployable_turret/proc/direction_track(mob/user, atom/targeted)
- if(user.incapacitated())
+ if(user.incapacitated)
return
setDir(get_dir(src,targeted))
user.setDir(dir)
@@ -169,7 +169,7 @@
/obj/machinery/deployable_turret/proc/checkfire(atom/targeted_atom, mob/user)
target = targeted_atom
- if(target == user || user.incapacitated() || target == get_turf(src))
+ if(target == user || user.incapacitated || target == get_turf(src))
return
if(world.time < cooldown)
if(!warned && world.time > (cooldown - cooldown_duration + rate_of_fire*number_of_shots)) // To capture the window where one is done firing
@@ -187,7 +187,7 @@
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/deployable_turret/, fire_helper), user), i*rate_of_fire)
/obj/machinery/deployable_turret/proc/fire_helper(mob/user)
- if(user.incapacitated() || !(user in buckled_mobs))
+ if(user.incapacitated || !(user in buckled_mobs))
return
update_positioning() //REFRESH MOUSE TRACKING!!
var/turf/targets_from = get_turf(src)
diff --git a/code/game/objects/structures/detectiveboard.dm b/code/game/objects/structures/detectiveboard.dm
new file mode 100644
index 0000000000000..f9d0560dfdee4
--- /dev/null
+++ b/code/game/objects/structures/detectiveboard.dm
@@ -0,0 +1,308 @@
+#define MAX_ICON_NOTICES 8
+#define MAX_CASES 8
+#define MAX_EVIDENCE_Y 3500
+#define MAX_EVIDENCE_X 1180
+
+#define EVIDENCE_TYPE_PHOTO "photo"
+#define EVIDENCE_TYPE_PAPER "paper"
+
+/obj/structure/detectiveboard
+ name = "detective notice board"
+ desc = "A board for linking evidence to crimes."
+ icon = 'icons/obj/wallmounts.dmi'
+ icon_state = "noticeboard"
+ density = FALSE
+ anchored = TRUE
+ max_integrity = 150
+
+ /// When player attaching evidence to board this will become TRUE
+ var/attaching_evidence = FALSE
+ /// Colors for case color
+ var/list/case_colors = list("red", "orange", "yellow", "green", "blue", "violet")
+ /// List of board cases
+ var/list/datum/case/cases = list()
+ /// Index of viewing case in cases array
+ var/current_case = 1
+
+MAPPING_DIRECTIONAL_HELPERS(/obj/structure/detectiveboard, 32)
+
+/obj/structure/detectiveboard/Initialize(mapload)
+ . = ..()
+
+ if(mapload)
+ for(var/obj/item/item in loc)
+ if(istype(item, /obj/item/paper) || istype(item, /obj/item/photo))
+ item.forceMove(src)
+ cases[current_case].notices++
+
+ register_context()
+ find_and_hang_on_wall()
+
+/// Attaching evidences: photo and papers
+
+/obj/structure/detectiveboard/attackby(obj/item/item, mob/user, params)
+ if(istype(item, /obj/item/paper) || istype(item, /obj/item/photo))
+ if(!cases.len)
+ to_chat(user, "There are no cases!")
+ return
+
+ if(attaching_evidence)
+ to_chat(user, "You already attaching evidence!")
+ return
+ attaching_evidence = TRUE
+ var/name = tgui_input_text(user, "Please enter the evidence name", "Detective's Board")
+ if(!name)
+ attaching_evidence = FALSE
+ return
+ var/desc = tgui_input_text(user, "Please enter the evidence description", "Detective's Board")
+ if(!desc)
+ attaching_evidence = FALSE
+ return
+
+ if(!user.transferItemToLoc(item, src))
+ attaching_evidence = FALSE
+ return
+ cases[current_case].notices++
+ var/datum/evidence/evidence = new (name, desc, item)
+ cases[current_case].evidences += evidence
+ to_chat(user, span_notice("You pin the [item] to the detective board."))
+ attaching_evidence = FALSE
+ update_appearance(UPDATE_ICON)
+ return
+ return ..()
+
+/obj/structure/detectiveboard/wrench_act_secondary(mob/living/user, obj/item/tool)
+ . = ..()
+ balloon_alert(user, "[anchored ? "un" : ""]securing...")
+ tool.play_tool_sound(src)
+ if(tool.use_tool(src, user, 6 SECONDS))
+ playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
+ balloon_alert(user, "[anchored ? "un" : ""]secured")
+ deconstruct()
+ return TRUE
+
+/obj/structure/detectiveboard/ui_state(mob/user)
+ return GLOB.physical_state
+
+/obj/structure/detectiveboard/ui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "DetectiveBoard", name, 1200, 800)
+ ui.open()
+
+/obj/structure/detectiveboard/ui_data(mob/user)
+ var/list/data = list()
+ var/list/data_cases = list()
+ for(var/datum/case/case in cases)
+ var/list/data_case = list("ref"=REF(case),"name" = case.name, "color" = case.color)
+ var/list/data_evidences = list()
+ for(var/datum/evidence/evidence in case.evidences)
+ var/list/data_evidence = list("ref" = REF(evidence), "name" = evidence.name, "type" = evidence.evidence_type, "description" = evidence.description, "x"=evidence.x, "y"=evidence.y)
+ var/list/data_connections = list()
+ for(var/datum/evidence/connection in evidence.connections)
+ data_connections += REF(connection) // TODO: create array of strings
+ data_evidence["connections"] = data_connections
+ switch(evidence.evidence_type)
+ if(EVIDENCE_TYPE_PHOTO)
+ var/obj/item/photo/photo = evidence.item
+ var/tmp_picture_name = "evidence_photo[REF(photo)].png"
+ user << browse_rsc(photo.picture.picture_image, tmp_picture_name)
+ data_evidence["photo_url"] = tmp_picture_name
+ if(EVIDENCE_TYPE_PAPER)
+ var/obj/item/paper/paper = evidence.item
+ data_evidence["text"] = ""
+ if(paper.raw_text_inputs && paper.raw_text_inputs.len)
+ data_evidence["text"] = paper.raw_text_inputs[1].raw_text
+ data_evidences += list(data_evidence)
+ data_case["evidences"] = data_evidences
+ var/list/connections = list()
+ for(var/datum/evidence/evidence in case.evidences)
+ for(var/datum/evidence/connection in evidence.connections)
+ var/list/from_pos = get_pin_position(evidence)
+ var/list/to_pos = get_pin_position(connection)
+ var/found_in_connections = FALSE
+ for(var/list/con in connections)
+ if(con["from"]["x"] == to_pos["x"] && con["from"]["y"] == to_pos["y"] && con["to"]["x"] == from_pos["x"] && con["to"]["y"] == from_pos["y"] )
+ found_in_connections = TRUE
+ if(!found_in_connections)
+ var/list/data_connection = list("color" = "red", "from" = from_pos, "to" = to_pos)
+ connections += list(data_connection)
+ data_case["connections"] = connections
+ data_cases += list(data_case)
+
+ data["cases"] = data_cases
+ data["current_case"] = current_case
+ return data
+
+/obj/structure/detectiveboard/proc/get_pin_position(datum/evidence/evidence)
+ return list("x" = evidence.x + 15, "y" = evidence.y + 15)
+
+/obj/structure/detectiveboard/ui_act(action, params, datum/tgui/ui, datum/ui_state/state)
+ . = ..()
+ if(.)
+ return
+ var/mob/user = ui.user
+ switch(action)
+ if("add_case")
+ if(cases.len == MAX_CASES)
+ return FALSE
+ var/new_case = tgui_input_text(user, "Please enter the case name", "Detective's Board")
+ if(!new_case)
+ return FALSE
+ var/case_color = tgui_input_list(user, "Please choose case color", "Detective's Board", case_colors)
+ if(!case_color)
+ return FALSE
+
+ var/datum/case/case = new (new_case, case_color)
+ cases += case
+ current_case = clamp(cases.len, 1, MAX_CASES)
+ update_appearance(UPDATE_ICON)
+ return TRUE
+ if("set_case")
+ if(cases && params["case"] && params["case"] <= cases.len)
+ current_case = clamp(params["case"], 1, MAX_CASES)
+ update_appearance(UPDATE_ICON)
+ return TRUE
+ if("remove_case")
+ var/datum/case/case = locate(params["case_ref"]) in cases
+ if(case)
+ for(var/datum/evidence/evidence in case.evidences)
+ remove_item(evidence.item, user)
+ cases -= case
+ current_case = clamp(cases.len, 1, MAX_CASES)
+ update_appearance(UPDATE_ICON)
+ return TRUE
+ if("rename_case")
+ var/new_name = tgui_input_text(user, "Please ender the case new name", "Detective's Board")
+ if(new_name)
+ var/datum/case/case = locate(params["case_ref"]) in cases
+ case.name = new_name
+ return TRUE
+ if("look_evidence")
+ var/datum/case/case = locate(params["case_ref"]) in cases
+ var/datum/evidence/evidence = locate(params["evidence_ref"]) in case.evidences
+ if(evidence.evidence_type == EVIDENCE_TYPE_PHOTO)
+ var/obj/item/photo/item = evidence.item
+ item.show(user)
+ return TRUE
+
+ var/obj/item/paper/paper = evidence.item
+ var/paper_text = ""
+ for(var/datum/paper_input/text_input as anything in paper.raw_text_inputs)
+ paper_text += text_input.raw_text
+ user << browse("Anything that is considered to aesthetically obstruct an atmospherics machine (vent, scrubber, port) is listed below. Please re-arrange to accomodate for this.
"
+ results += "Anything that is considered to aesthetically obstruct an atmospherics machine (vent, scrubber, port) is listed below. Please re-arrange to accommodate for this.
"
// Ignore out stuff we see in normal and standard mapping that we don't care about (false alarms). Typically stuff that goes directionally off turfs or other undertile objects that we don't want to care about.
var/list/ignore_list = list(
diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm
index c4e4257e84fc7..b70465666f3d0 100644
--- a/code/modules/admin/verbs/playsound.dm
+++ b/code/modules/admin/verbs/playsound.dm
@@ -54,13 +54,13 @@ ADMIN_VERB(play_direct_mob_sound, R_SOUND, "Play Direct Mob Sound", "Play a soun
SEND_SOUND(target, sound)
BLACKBOX_LOG_ADMIN_VERB("Play Direct Mob Sound")
-///Takes an input from either proc/play_web_sound or the request manager and runs it through youtube-dl and prompts the user before playing it to the server.
+///Takes an input from either proc/play_web_sound or the request manager and runs it through yt-dlp and prompts the user before playing it to the server.
/proc/web_sound(mob/user, input, credit)
if(!check_rights(R_SOUND))
return
var/ytdl = CONFIG_GET(string/invoke_youtubedl)
if(!ytdl)
- to_chat(user, span_boldwarning("Youtube-dl was not configured, action unavailable"), confidential = TRUE) //Check config.txt for the INVOKE_YOUTUBEDL value
+ to_chat(user, span_boldwarning("yt-dlp was not configured, action unavailable"), confidential = TRUE) //Check config.txt for the INVOKE_YOUTUBEDL value
return
var/web_sound_url = ""
var/stop_web_sounds = FALSE
@@ -73,14 +73,14 @@ ADMIN_VERB(play_direct_mob_sound, R_SOUND, "Play Direct Mob Sound", "Play a soun
var/stdout = output[SHELLEO_STDOUT]
var/stderr = output[SHELLEO_STDERR]
if(errorlevel)
- to_chat(user, span_boldwarning("Youtube-dl URL retrieval FAILED:"), confidential = TRUE)
+ to_chat(user, span_boldwarning("yt-dlp URL retrieval FAILED:"), confidential = TRUE)
to_chat(user, span_warning("[stderr]"), confidential = TRUE)
return
var/list/data
try
data = json_decode(stdout)
catch(var/exception/e)
- to_chat(user, span_boldwarning("Youtube-dl JSON parsing FAILED:"), confidential = TRUE)
+ to_chat(user, span_boldwarning("yt-dlp JSON parsing FAILED:"), confidential = TRUE)
to_chat(user, span_warning("[e]: [stdout]"), confidential = TRUE)
return
if (data["url"])
diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm
index d6f4c124d36c7..bcb89379ef40a 100644
--- a/code/modules/admin/verbs/secrets.dm
+++ b/code/modules/admin/verbs/secrets.dm
@@ -41,7 +41,7 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w
#define THUNDERDOME_TEMPLATE_FILE "admin_thunderdome.dmm"
#define HIGHLANDER_DELAY_TEXT "40 seconds (crush the hope of a normal shift)"
-/datum/secrets_menu/ui_act(action, params)
+/datum/secrets_menu/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/admin/view_variables/debug_variable_appearance.dm b/code/modules/admin/view_variables/debug_variable_appearance.dm
index 9e92eba4605c3..6d87f6cc85d86 100644
--- a/code/modules/admin/view_variables/debug_variable_appearance.dm
+++ b/code/modules/admin/view_variables/debug_variable_appearance.dm
@@ -63,20 +63,6 @@ GLOBAL_DATUM_INIT(pluto, /atom/movable, new /atom/movable(null))
return FALSE
if(var_name == NAMEOF(src, realized_underlays))
return FALSE
- // Filtering out the stuff I know we don't care about
- if(var_name == NAMEOF(src, x))
- return FALSE
- if(var_name == NAMEOF(src, y))
- return FALSE
- if(var_name == NAMEOF(src, z))
- return FALSE
- // Could make an argument for these but I think they will just confuse people, so yeeet
-#ifndef SPACEMAN_DMM // Spaceman doesn't believe in contents on appearances, sorry lads
- if(var_name == NAMEOF(src, contents))
- return FALSE
-#endif
- if(var_name == NAMEOF(src, loc))
- return FALSE
if(var_name == NAMEOF(src, vis_contents))
return FALSE
return ..()
diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm
index d9a1b90b0af29..835da1a0b39cb 100644
--- a/code/modules/admin/view_variables/debug_variables.dm
+++ b/code/modules/admin/view_variables/debug_variables.dm
@@ -29,7 +29,7 @@
return "[.][item]"
-// This is split into a seperate proc mostly to make errors that happen not break things too much
+// This is split into a separate proc mostly to make errors that happen not break things too much
/proc/_debug_variable_value(name, value, level, datum/owner, sanitize, display_flags)
if(isappearance(value))
value = get_vv_appearance(value)
@@ -64,11 +64,11 @@
var/datum/datum_value = value
return datum_value.debug_variable_value(name, level, owner, sanitize, display_flags)
- if(islist(value) || (name in GLOB.vv_special_lists)) // Some special lists arent detectable as a list through istype
+ if(islist(value) || (name in GLOB.vv_special_lists)) // Some special lists aren't detectable as a list through istype
var/list/list_value = value
var/list/items = list()
- // This is becuse some lists either dont count as lists or a locate on their ref will return null
+ // This is because some lists either don't count as lists or a locate on their ref will return null
var/link_vars = "Vars=[REF(value)]"
if(name in GLOB.vv_special_lists)
link_vars = "Vars=[REF(owner)];special_varname=[name]"
diff --git a/code/modules/admin/view_variables/filterrific.dm b/code/modules/admin/view_variables/filterrific.dm
index 0bd9f51c114f9..a997d52047743 100644
--- a/code/modules/admin/view_variables/filterrific.dm
+++ b/code/modules/admin/view_variables/filterrific.dm
@@ -24,7 +24,7 @@
data["target_filter_data"] = target.filter_data
return data
-/datum/filter_editor/ui_act(action, list/params)
+/datum/filter_editor/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm b/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm
index fa5fde1f20e18..8eb2f1c72f0fb 100644
--- a/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm
+++ b/code/modules/admin/view_variables/nobody_wants_to_learn_matrix_math.dm
@@ -42,7 +42,7 @@
data["pixelated"] = target.appearance_flags & PIXEL_SCALE
return data
-/datum/nobody_wants_to_learn_matrix_math/ui_act(action, list/params)
+/datum/nobody_wants_to_learn_matrix_math/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -52,7 +52,7 @@
var/matrix_var_name = params["var_name"]
var/matrix_var_value = params["var_value"]
if(testing_matrix.vv_edit_var(matrix_var_name, matrix_var_value) == FALSE)
- to_chat(src, "Your edit was rejected by the object. This is a bug with the matrix tester, not your fault, so report it on github.", confidential = TRUE)
+ to_chat(src, "Your edit was rejected by the object. This is a bug with the matrix tester, not your fault, so report it on GitHub.", confidential = TRUE)
return
set_transform()
if("scale")
diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm
index d51885d51431f..fc8bfa0de8486 100644
--- a/code/modules/antagonists/_common/antag_datum.dm
+++ b/code/modules/antagonists/_common/antag_datum.dm
@@ -128,7 +128,7 @@ GLOBAL_LIST_EMPTY(antagonists)
ui = new(user, src, ui_name, name)
ui.open()
-/datum/antagonist/ui_act(action, params)
+/datum/antagonist/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -271,6 +271,9 @@ GLOBAL_LIST_EMPTY(antagonists)
if(count_against_dynamic_roll_chance && owner.current.stat != DEAD && owner.current.client)
owner.current.add_to_current_living_antags()
+ for (var/datum/atom_hud/alternate_appearance/basic/antag_hud as anything in GLOB.active_alternate_appearances)
+ antag_hud.apply_to_new_mob(owner.current)
+
SEND_SIGNAL(owner, COMSIG_ANTAGONIST_GAINED, src)
/**
@@ -328,13 +331,8 @@ GLOBAL_LIST_EMPTY(antagonists)
if(team)
team.remove_member(owner)
SEND_SIGNAL(owner, COMSIG_ANTAGONIST_REMOVED, src)
-
- // Remove HUDs that they should no longer see
- var/mob/living/current = owner.current
- for (var/datum/atom_hud/alternate_appearance/basic/has_antagonist/antag_hud as anything in GLOB.has_antagonist_huds)
- if (!antag_hud.mobShouldSee(current))
- antag_hud.hide_from(current)
-
+ if(owner.current)
+ SEND_SIGNAL(owner.current, COMSIG_MOB_ANTAGONIST_REMOVED, src)
qdel(src)
/**
@@ -530,8 +528,7 @@ GLOBAL_LIST_EMPTY(antagonists)
// Add HUDs that they couldn't see before
for (var/datum/atom_hud/alternate_appearance/basic/has_antagonist/antag_hud as anything in GLOB.has_antagonist_huds)
- if (antag_hud.mobShouldSee(owner.current))
- antag_hud.show_to(owner.current)
+ antag_hud.apply_to_new_mob(owner.current)
/// Takes a location, returns an image drawing "on" it that matches this antag datum's hud icon
/datum/antagonist/proc/hud_image_on(mob/hud_loc)
diff --git a/code/modules/antagonists/_common/antag_hud.dm b/code/modules/antagonists/_common/antag_hud.dm
index 863d52ef5ffe4..9933569f9a988 100644
--- a/code/modules/antagonists/_common/antag_hud.dm
+++ b/code/modules/antagonists/_common/antag_hud.dm
@@ -8,8 +8,9 @@ GLOBAL_LIST_EMPTY_TYPED(has_antagonist_huds, /datum/atom_hud/alternate_appearanc
var/datum/weakref/team_ref
/datum/atom_hud/alternate_appearance/basic/has_antagonist/New(key, image/I, antag_datum_type, datum/weakref/team)
- src.antag_datum_type = antag_datum_type
- team_ref = team
+ if(antag_datum_type)
+ src.antag_datum_type = antag_datum_type
+ src.team_ref = team
GLOB.has_antagonist_huds += src
return ..(key, I, NONE)
@@ -18,6 +19,8 @@ GLOBAL_LIST_EMPTY_TYPED(has_antagonist_huds, /datum/atom_hud/alternate_appearanc
return ..()
/datum/atom_hud/alternate_appearance/basic/has_antagonist/mobShouldSee(mob/M)
+ if(add_ghost_version && isobserver(M))
+ return FALSE // use the ghost version instead
var/datum/team/antag_team = team_ref?.resolve()
if(!isnull(antag_team))
return !!(M.mind in antag_team.members)
diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm
index bbc5c7a7b03ab..5f7a7e579d3ee 100644
--- a/code/modules/antagonists/_common/antag_spawner.dm
+++ b/code/modules/antagonists/_common/antag_spawner.dm
@@ -45,7 +45,7 @@
get_asset_datum(/datum/asset/simple/contracts),
)
-/obj/item/antag_spawner/contract/ui_act(action, list/params)
+/obj/item/antag_spawner/contract/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(used || polling || !ishuman(usr))
return
diff --git a/code/modules/antagonists/abductor/abductor.dm b/code/modules/antagonists/abductor/abductor.dm
index 68cf781db9b05..7fc0c565ab1df 100644
--- a/code/modules/antagonists/abductor/abductor.dm
+++ b/code/modules/antagonists/abductor/abductor.dm
@@ -74,12 +74,13 @@
owner.special_role = ROLE_ABDUCTOR
objectives += team.objectives
finalize_abductor()
- ADD_TRAIT(owner, TRAIT_ABDUCTOR_TRAINING, ABDUCTOR_ANTAGONIST)
+ // We don't want abductors to be converted by other antagonists
+ owner.add_traits(list(TRAIT_ABDUCTOR_TRAINING, TRAIT_UNCONVERTABLE), ABDUCTOR_ANTAGONIST)
return ..()
/datum/antagonist/abductor/on_removal()
owner.special_role = null
- REMOVE_TRAIT(owner, TRAIT_ABDUCTOR_TRAINING, ABDUCTOR_ANTAGONIST)
+ owner.remove_traits(list(TRAIT_ABDUCTOR_TRAINING, TRAIT_UNCONVERTABLE), ABDUCTOR_ANTAGONIST)
return ..()
/datum/antagonist/abductor/greet()
@@ -90,20 +91,20 @@
/datum/antagonist/abductor/proc/finalize_abductor()
//Equip
- var/mob/living/carbon/human/H = owner.current
- H.set_species(/datum/species/abductor)
- var/obj/item/organ/internal/tongue/abductor/T = H.get_organ_slot(ORGAN_SLOT_TONGUE)
- T.mothership = "[team.name]"
+ var/mob/living/carbon/human/new_abductor = owner.current
+ new_abductor.set_species(/datum/species/abductor)
+ var/obj/item/organ/internal/tongue/abductor/abductor_tongue = new_abductor.get_organ_slot(ORGAN_SLOT_TONGUE)
+ abductor_tongue.mothership = "[team.name]"
- H.real_name = "[team.name] [sub_role]"
- H.equipOutfit(outfit)
+ new_abductor.real_name = "[team.name] [sub_role]"
+ new_abductor.equipOutfit(outfit)
// We require that the template be loaded here, so call it in a blocking manner, if its already done loading, this won't block
SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_ABDUCTOR_SHIPS)
//Teleport to ship
for(var/obj/effect/landmark/abductor/LM in GLOB.landmarks_list)
if(istype(LM, landmark_type) && LM.team_number == team.team_number)
- H.forceMove(LM.loc)
+ new_abductor.forceMove(LM.loc)
break
/datum/antagonist/abductor/scientist/on_gain()
@@ -137,13 +138,13 @@
if(!ishuman(owner.current))
to_chat(admin, span_warning("This only works on humans!"))
return
- var/mob/living/carbon/human/H = owner.current
+ var/mob/living/carbon/human/new_abductor = owner.current
var/gear = tgui_alert(admin,"Agent or Scientist Gear", "Gear", list("Agent", "Scientist"))
if(gear)
if(gear == "Agent")
- H.equipOutfit(/datum/outfit/abductor/agent)
+ new_abductor.equipOutfit(/datum/outfit/abductor/agent)
else
- H.equipOutfit(/datum/outfit/abductor/scientist)
+ new_abductor.equipOutfit(/datum/outfit/abductor/scientist)
/datum/team/abductor_team
member_name = "\improper Abductor"
diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_clothing.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_clothing.dm
index c54ce6937d86f..e5951473df087 100644
--- a/code/modules/antagonists/abductor/equipment/gear/abductor_clothing.dm
+++ b/code/modules/antagonists/abductor/equipment/gear/abductor_clothing.dm
@@ -103,6 +103,8 @@
/obj/item/clothing/suit/armor/abductor/vest/proc/return_disguise_name(mob/living/carbon/human/source, list/identity)
SIGNAL_HANDLER
+ if(identity[VISIBLE_NAME_FORCED]) // name-forcing overrides disguise
+ return
identity[VISIBLE_NAME_FACE] = disguise.name
identity[VISIBLE_NAME_ID] = ""
diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm
index d3f162f5fb55a..25bbea665777c 100644
--- a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm
+++ b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm
@@ -384,7 +384,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
/obj/item/melee/baton/abductor/proc/SleepAttack(mob/living/target, mob/living/user)
playsound(src, on_stun_sound, 50, TRUE, -1)
- if(target.incapacitated(IGNORE_RESTRAINTS|IGNORE_GRAB))
+ if(INCAPACITATED_IGNORING(target, INCAPABLE_RESTRAINTS|INCAPABLE_GRAB))
if(target.can_block_magic(MAGIC_RESISTANCE_MIND))
to_chat(user, span_warning("The specimen has some kind of mental protection that is interfering with the sleep inducement! It seems you've been foiled."))
target.visible_message(span_danger("[user] tried to induced sleep in [target] with [src], but is unsuccessful!"), \
@@ -689,7 +689,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
/obj/item/abductor/alien_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
diff --git a/code/modules/antagonists/abductor/equipment/glands/mindshock.dm b/code/modules/antagonists/abductor/equipment/glands/mindshock.dm
index 87870947f17d6..1a3f140c3415d 100644
--- a/code/modules/antagonists/abductor/equipment/glands/mindshock.dm
+++ b/code/modules/antagonists/abductor/equipment/glands/mindshock.dm
@@ -15,7 +15,7 @@
for(var/mob/living/carbon/target in orange(4,owner_turf))
if(target == owner)
continue
- if(HAS_TRAIT(target, TRAIT_MINDSHIELD))
+ if(HAS_MIND_TRAIT(target, TRAIT_MINDSHIELD))
to_chat(target, span_notice("You hear a faint hum fill your ears, which quickly dies down."))
continue
@@ -41,7 +41,7 @@
if(target_human.stat)
continue
- if(HAS_TRAIT(target_human, TRAIT_MINDSHIELD))
+ if(HAS_MIND_TRAIT(target_human, TRAIT_UNCONVERTABLE))
to_chat(target_human, span_notice("You hear a low drone as something foreign attempts to enter your mind, but the noise fades after a few moments."))
continue
diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm
index ee729de7068b8..3dcdaf5a5b07e 100644
--- a/code/modules/antagonists/abductor/machinery/console.dm
+++ b/code/modules/antagonists/abductor/machinery/console.dm
@@ -118,7 +118,7 @@
data["vest_lock"] = HAS_TRAIT_FROM(vest, TRAIT_NODROP, ABDUCTOR_VEST_TRAIT)
return data
-/obj/machinery/abductor/console/ui_act(action, list/params)
+/obj/machinery/abductor/console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/antagonists/abductor/machinery/dispenser.dm b/code/modules/antagonists/abductor/machinery/dispenser.dm
index 8d8f9e14b8954..416153c50e58f 100644
--- a/code/modules/antagonists/abductor/machinery/dispenser.dm
+++ b/code/modules/antagonists/abductor/machinery/dispenser.dm
@@ -48,7 +48,7 @@
data["glands"] += list(gland_information)
return data
-/obj/machinery/abductor/gland_dispenser/ui_act(action, list/params)
+/obj/machinery/abductor/gland_dispenser/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm
index a549171b66150..09790f4ba897e 100644
--- a/code/modules/antagonists/abductor/machinery/experiment.dm
+++ b/code/modules/antagonists/abductor/machinery/experiment.dm
@@ -86,7 +86,7 @@
data["occupant_status"] = mob_occupant.stat
return data
-/obj/machinery/abductor/experiment/ui_act(action, list/params)
+/obj/machinery/abductor/experiment/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm
index 217a215e8753c..65d2acb8bb905 100644
--- a/code/modules/antagonists/blob/overmind.dm
+++ b/code/modules/antagonists/blob/overmind.dm
@@ -194,7 +194,7 @@ GLOBAL_LIST_EMPTY(blob_nodes)
if(isnull(guy_turf) || !is_station_level(guy_turf.z))
continue
- if(live_guy in GLOB.overminds || (live_guy.pass_flags & PASSBLOB))
+ if((live_guy in GLOB.overminds) || (live_guy.pass_flags & PASSBLOB))
continue
var/area/blob_area = get_area(guy_turf)
diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm
index 5f4622bd910a4..4f535ece8cef0 100644
--- a/code/modules/antagonists/brother/brother.dm
+++ b/code/modules/antagonists/brother/brother.dm
@@ -94,7 +94,7 @@
flashed.balloon_alert(source, "[flashed.p_theyre()] loyal to someone else!")
return
- if (HAS_TRAIT(flashed, TRAIT_MINDSHIELD))
+ if (HAS_TRAIT(flashed, TRAIT_UNCONVERTABLE))
flashed.balloon_alert(source, "[flashed.p_they()] resist!")
return
@@ -221,6 +221,9 @@
return
. = ..()
member.remove_antag_datum(/datum/antagonist/brother)
+ if (!length(members))
+ qdel(src)
+ return
if (isnull(member.current))
return
for (var/datum/mind/brother_mind as anything in members)
diff --git a/code/modules/antagonists/changeling/cellular_emporium.dm b/code/modules/antagonists/changeling/cellular_emporium.dm
index 68e83ea25e668..754d2343d5cd5 100644
--- a/code/modules/antagonists/changeling/cellular_emporium.dm
+++ b/code/modules/antagonists/changeling/cellular_emporium.dm
@@ -69,7 +69,7 @@
return data
-/datum/cellular_emporium/ui_act(action, params)
+/datum/cellular_emporium/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm
index 1dff58377fd4a..6f2781b20336c 100644
--- a/code/modules/antagonists/changeling/powers/fakedeath.dm
+++ b/code/modules/antagonists/changeling/powers/fakedeath.dm
@@ -123,7 +123,7 @@
return
var/datum/antagonist/changeling/ling = IS_CHANGELING(user)
- if(QDELETED(ling) || !(src in ling.innate_powers + ling.purchased_powers)) // checking both innate and purchased for full coverage
+ if(QDELETED(ling) || !(src in (ling.innate_powers + ling.purchased_powers))) // checking both innate and purchased for full coverage
return
if(!HAS_TRAIT_FROM(user, TRAIT_DEATHCOMA, CHANGELING_TRAIT))
return
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index db261c29b5433..01d97f448cd60 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -498,6 +498,7 @@
lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi'
righthand_file = 'icons/mob/inhands/antag/changeling_righthand.dmi'
block_chance = 50
+ is_bashable = FALSE
var/remaining_uses //Set by the changeling ability.
diff --git a/code/modules/antagonists/changeling/powers/spiders.dm b/code/modules/antagonists/changeling/powers/spiders.dm
index ce23fc0eb1b57..e184815945b40 100644
--- a/code/modules/antagonists/changeling/powers/spiders.dm
+++ b/code/modules/antagonists/changeling/powers/spiders.dm
@@ -7,6 +7,14 @@
dna_cost = 1
req_absorbs = 3
+// Ensures that you cannot horrifically cheese the game by spawning spiders while in the vents
+/datum/action/changeling/spiders/can_be_used_by(mob/living/user)
+ if (!isopenturf(user.loc))
+ var/turf/user_turf = get_turf(user)
+ user_turf.balloon_alert(user, "not enough space!")
+ return FALSE
+ return ..()
+
//Makes a spider egg cluster. Allows you enable further general havok by introducing spiders to the station.
/datum/action/changeling/spiders/sting_action(mob/user)
..()
diff --git a/code/modules/antagonists/clown_ops/clown_weapons.dm b/code/modules/antagonists/clown_ops/clown_weapons.dm
index 1e566b7d1975e..bd2dfd4b0da01 100644
--- a/code/modules/antagonists/clown_ops/clown_weapons.dm
+++ b/code/modules/antagonists/clown_ops/clown_weapons.dm
@@ -17,6 +17,7 @@
desc = "advanced clown shoes that protect the wearer and render them nearly immune to slipping on their own peels. They also squeak at 100% capacity."
clothing_traits = list(TRAIT_NO_SLIP_WATER)
slowdown = SHOES_SLOWDOWN
+ body_parts_covered = FEET|LEGS
armor_type = /datum/armor/clown_shoes_combat
strip_delay = 70
resistance_flags = NONE
@@ -49,6 +50,7 @@
strip_delay = 70
resistance_flags = NONE
always_noslip = TRUE
+ body_parts_covered = FEET|LEGS
/datum/armor/banana_shoes_combat
melee = 25
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index 39cd9b550ae45..4cfa39f3fa654 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -79,7 +79,7 @@
return
qdel(nullify_spell)
BS = possible_spells[entered_spell_name]
- if(QDELETED(src) || owner.incapacitated() || !BS || (rune && !(locate(/obj/effect/rune/empower) in range(1, owner))) || (length(spells) >= limit))
+ if(QDELETED(src) || owner.incapacitated || !BS || (rune && !(locate(/obj/effect/rune/empower) in range(1, owner))) || (length(spells) >= limit))
return
to_chat(owner,span_warning("You begin to carve unnatural symbols into your flesh!"))
SEND_SOUND(owner, sound('sound/weapons/slice.ogg',0,1,10))
@@ -137,7 +137,7 @@
..()
/datum/action/innate/cult/blood_spell/IsAvailable(feedback = FALSE)
- if(!IS_CULTIST(owner) || owner.incapacitated() || (!charges && deletes_on_empty))
+ if(!IS_CULTIST(owner) || owner.incapacitated || (!charges && deletes_on_empty))
return FALSE
return ..()
@@ -162,14 +162,14 @@
name = "Stun"
desc = "Empowers your hand to stun and mute a victim on contact. Gets weaker depending on how many have joined the Cult."
button_icon_state = "hand"
- magic_path = "/obj/item/melee/blood_magic/stun"
+ magic_path = /obj/item/melee/blood_magic/stun
health_cost = 10
/datum/action/innate/cult/blood_spell/teleport
name = "Teleport"
desc = "Empowers your hand to teleport yourself or another cultist to a teleport rune on contact."
button_icon_state = "tele"
- magic_path = "/obj/item/melee/blood_magic/teleport"
+ magic_path = /obj/item/melee/blood_magic/teleport
health_cost = 7
/datum/action/innate/cult/blood_spell/emp
@@ -194,20 +194,20 @@
desc = "Empowers your hand to start handcuffing victim on contact, and mute them if successful."
button_icon_state = "cuff"
charges = 4
- magic_path = "/obj/item/melee/blood_magic/shackles"
+ magic_path = /obj/item/melee/blood_magic/shackles
/datum/action/innate/cult/blood_spell/construction
name = "Twisted Construction"
desc = "Empowers your hand to corrupt certain metalic objects.
Converts:
Plasteel into runed metal
50 metal into a construct shell
Living cyborgs into constructs after a delay
Cyborg shells into construct shells
Purified soulstones (and any shades inside) into cultist soulstones
Airlocks into brittle runed airlocks after a delay (harm intent)"
button_icon_state = "transmute"
- magic_path = "/obj/item/melee/blood_magic/construction"
+ magic_path = /obj/item/melee/blood_magic/construction
health_cost = 12
/datum/action/innate/cult/blood_spell/equipment
name = "Summon Combat Equipment"
desc = "Empowers your hand to summon combat gear onto a cultist you touch, including cult armor, a cult bola, and a cult sword. Not recommended for use before the blood cult's presence has been revealed."
button_icon_state = "equip"
- magic_path = "/obj/item/melee/blood_magic/armor"
+ magic_path = /obj/item/melee/blood_magic/armor
/datum/action/innate/cult/blood_spell/dagger
name = "Summon Ritual Dagger"
@@ -263,7 +263,7 @@
SEND_SOUND(caller, sound('sound/effects/ghost.ogg', FALSE, TRUE, 50))
var/image/sparkle_image = image('icons/effects/cult.dmi', clicked_on, "bloodsparkles", ABOVE_MOB_LAYER)
- clicked_on.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", sparkle_image, NONE)
+ clicked_on.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/has_antagonist/cult, "cult_apoc", sparkle_image, NONE)
addtimer(CALLBACK(clicked_on, TYPE_PROC_REF(/atom/, remove_alt_appearance), "cult_apoc", TRUE), 4 MINUTES, TIMER_OVERRIDE|TIMER_UNIQUE)
to_chat(caller, span_cult_bold("[clicked_on] has been cursed with living nightmares!"))
@@ -339,7 +339,7 @@
invocation = "Fel'th Dol Ab'orod!"
button_icon_state = "manip"
charges = 5
- magic_path = "/obj/item/melee/blood_magic/manipulator"
+ magic_path = /obj/item/melee/blood_magic/manipulator
deletes_on_empty = FALSE
// The "magic hand" items
@@ -433,13 +433,15 @@
/obj/item/melee/blood_magic/stun/cast_spell(mob/living/target, mob/living/carbon/user)
if(!istype(target) || IS_CULTIST(target))
return
- var/datum/antagonist/cult/cultist = IS_CULTIST(user)
- var/datum/team/cult/cult_team = cultist.get_team()
+ var/datum/antagonist/cult/cultist = GET_CULTIST(user)
+ var/datum/team/cult/cult_team = cultist?.get_team()
var/effect_coef = 1
- if(cult_team.cult_ascendent)
+ if(cult_team?.cult_ascendent)
effect_coef = 0.1
- else if(cult_team.cult_risen)
+ else if(cult_team?.cult_risen)
effect_coef = 0.4
+ if(IS_CULTIST(user) && isnull(GET_CULTIST(user)))
+ effect_coef = 0.2
user.visible_message(
span_warning("[user] holds up [user.p_their()] hand, which explodes in a flash of red light!"),
span_cult_italic("You attempt to stun [target] with the spell!"),
@@ -513,7 +515,7 @@
to_chat(user, span_warning("You must pick a valid rune!"))
return
var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to?
- if(QDELETED(src) || !user || !user.is_holding(src) || user.incapacitated() || !actual_selected_rune)
+ if(QDELETED(src) || !user || !user.is_holding(src) || user.incapacitated || !actual_selected_rune)
return
var/turf/dest = get_turf(actual_selected_rune)
if(dest.is_blocked_turf(TRUE))
@@ -699,7 +701,7 @@
/obj/item/melee/blood_magic/construction/proc/check_menu(mob/user)
if(!istype(user))
CRASH("The cult construct selection radial menu was accessed by something other than a valid user.")
- if(user.incapacitated() || !user.Adjacent(src))
+ if(user.incapacitated || !user.Adjacent(src))
return FALSE
return TRUE
@@ -965,7 +967,7 @@
/obj/item/melee/blood_magic/manipulator/proc/check_menu(mob/living/user)
if(!istype(user))
CRASH("The Blood Rites manipulator radial menu was accessed by something other than a valid user.")
- if(user.incapacitated() || !user.Adjacent(src))
+ if(user.incapacitated || !user.Adjacent(src))
return FALSE
return TRUE
diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm
index a4f3b291f74da..3d5677996502a 100644
--- a/code/modules/antagonists/cult/cult_comms.dm
+++ b/code/modules/antagonists/cult/cult_comms.dm
@@ -120,7 +120,7 @@
if(!team_member.current)
continue
team_member.current.update_mob_action_buttons()
- if(team_member.current.incapacitated())
+ if(team_member.current.incapacitated)
continue
SEND_SOUND(team_member.current, 'sound/hallucinations/im_here1.ogg')
to_chat(team_member.current, span_cult_large("Acolyte [nominee] has asserted that [nominee.p_theyre()] worthy of leading the cult. A vote will be called shortly."))
@@ -129,19 +129,19 @@
///Polls all Cultists on whether the person putting themselves forward should be made the Cult Leader, if they can actually be such.
/proc/poll_cultists_for_leader(mob/living/nominee, datum/team/cult/team)
- if(QDELETED(nominee) || nominee.incapacitated())
+ if(QDELETED(nominee) || nominee.incapacitated)
team.cult_vote_called = FALSE
for(var/datum/mind/team_member as anything in team.members)
if(!team_member.current)
continue
team_member.current.update_mob_action_buttons()
- if(team_member.current.incapacitated())
+ if(team_member.current.incapacitated)
continue
to_chat(team_member.current,span_cult_large("[nominee] has died in the process of attempting to start a vote!"))
return FALSE
var/list/mob/living/asked_cultists = list()
for(var/datum/mind/team_member as anything in team.members)
- if(!team_member.current || team_member.current == nominee || team_member.current.incapacitated())
+ if(!team_member.current || team_member.current == nominee || team_member.current.incapacitated)
continue
SEND_SOUND(team_member.current, 'sound/magic/exit_blood.ogg')
asked_cultists += team_member.current
@@ -161,13 +161,13 @@
chat_text_border_icon = mutable_appearance('icons/effects/effects.dmi', "cult_master_logo")
)
)
- if(QDELETED(nominee) || nominee.incapacitated())
+ if(QDELETED(nominee) || nominee.incapacitated)
team.cult_vote_called = FALSE
for(var/datum/mind/team_member as anything in team.members)
if(!team_member.current)
continue
team_member.current.update_mob_action_buttons()
- if(team_member.current.incapacitated())
+ if(team_member.current.incapacitated)
continue
to_chat(team_member.current,span_cult_large("[nominee] has died in the process of attempting to win the cult's support!"))
return FALSE
@@ -177,7 +177,7 @@
if(!team_member.current)
continue
team_member.current.update_mob_action_buttons()
- if(team_member.current.incapacitated())
+ if(team_member.current.incapacitated)
continue
to_chat(team_member.current,span_cult_large("[nominee] has gone catatonic in the process of attempting to win the cult's support!"))
return FALSE
@@ -187,7 +187,7 @@
if(!team_member.current)
continue
team_member.current.update_mob_action_buttons()
- if(team_member.current.incapacitated())
+ if(team_member.current.incapacitated)
continue
to_chat(team_member.current, span_cult_large("[nominee] could not win the cult's support and shall continue to serve as an acolyte."))
return FALSE
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index 994f98ed099ea..1c715036d37b5 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -19,6 +19,7 @@
inhand_x_dimension = 32
inhand_y_dimension = 32
w_class = WEIGHT_CLASS_SMALL
+ slot_flags = ITEM_SLOT_BELT
force = 15
throwforce = 25
block_chance = 25
@@ -217,7 +218,7 @@ Striking a noncultist, however, will tear their flesh."}
// Get the heretic's new body and antag datum.
trapped_entity = trapped_mind?.current
trapped_entity.key = trapped_mind?.key
- var/datum/antagonist/heretic/heretic_holder = IS_HERETIC(trapped_entity)
+ var/datum/antagonist/heretic/heretic_holder = GET_HERETIC(trapped_entity)
if(!heretic_holder)
stack_trace("[soul_to_bind] in but not a heretic on the heretic soul blade.")
@@ -378,7 +379,7 @@ Striking a noncultist, however, will tear their flesh."}
worn_icon = 'icons/mob/clothing/suits/armor.dmi'
inhand_icon_state = "cultrobes"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
- allowed = list(/obj/item/tome, /obj/item/melee/cultblade)
+ allowed = list(/obj/item/tome, /obj/item/melee/cultblade, /obj/item/melee/sickly_blade/cursed)
armor_type = /datum/armor/hooded_cultrobes
flags_inv = HIDEJUMPSUIT
cold_protection = CHEST|GROIN|LEGS|ARMS
@@ -595,7 +596,6 @@ Striking a noncultist, however, will tear their flesh."}
/obj/item/clothing/suit/hooded/cultrobes/berserker
name = "flagellant's robes"
desc = "Blood-soaked robes infused with dark magic; allows the user to move at inhuman speeds, but at the cost of increased damage. Provides an even greater speed boost if its hood is worn."
- allowed = list(/obj/item/tome, /obj/item/melee/cultblade)
armor_type = /datum/armor/cultrobes_berserker
slowdown = -0.3 //the hood gives an additional -0.3 if you have it flipped up, for a total of -0.6
hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/berserkerhood
@@ -911,7 +911,7 @@ Striking a noncultist, however, will tear their flesh."}
cultists |= cult_mind.current
var/mob/living/cultist_to_receive = tgui_input_list(user, "Who do you wish to call to [src]?", "Followers of the Geometer", (cultists - user))
- if(QDELETED(src) || loc != user || user.incapacitated())
+ if(QDELETED(src) || loc != user || user.incapacitated)
return ITEM_INTERACT_BLOCKING
if(isnull(cultist_to_receive))
to_chat(user, span_cult_italic("You require a destination!"))
@@ -1223,6 +1223,7 @@ Striking a noncultist, however, will tear their flesh."}
attack_verb_simple = list("bump", "prod")
hitsound = 'sound/weapons/smash.ogg'
block_sound = 'sound/weapons/effects/ric5.ogg'
+ shield_bash_sound = 'sound/effects/glassknock.ogg'
var/illusions = 2
/obj/item/shield/mirror/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)
@@ -1278,7 +1279,6 @@ Striking a noncultist, however, will tear their flesh."}
return FALSE
/obj/item/shield/mirror/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
- var/turf/impact_turf = get_turf(hit_atom)
if(isliving(hit_atom))
var/mob/living/target = hit_atom
@@ -1291,14 +1291,9 @@ Striking a noncultist, however, will tear their flesh."}
return
if(!..())
target.Paralyze(30)
- var/mob/thrower = throwingdatum?.get_thrower()
- if(thrower)
- for(var/mob/living/Next in orange(2, impact_turf))
- if(!Next.density || IS_CULTIST(Next))
- continue
- throw_at(Next, 3, 1, thrower)
- return
- throw_at(thrower, 7, 1, null)
+ new /obj/effect/temp_visual/cult/sparks(target)
+ playsound(target, 'sound/effects/glassbr3.ogg', 100)
+ qdel(src)
else
..()
diff --git a/code/modules/antagonists/cult/cult_other.dm b/code/modules/antagonists/cult/cult_other.dm
index 9435baedba11a..f9e1462a30efe 100644
--- a/code/modules/antagonists/cult/cult_other.dm
+++ b/code/modules/antagonists/cult/cult_other.dm
@@ -25,8 +25,6 @@
return FALSE
#endif
- if(target.mind.unconvertable)
- return FALSE
if(ishuman(target) && target.mind.holy_role)
return FALSE
if(specific_cult?.is_sacrifice_target(target.mind))
@@ -36,6 +34,6 @@
return FALSE
if(IS_HERETIC_OR_MONSTER(target))
return FALSE
- if(HAS_TRAIT(target, TRAIT_MINDSHIELD) || issilicon(target) || isbot(target) || isdrone(target))
+ if(HAS_MIND_TRAIT(target, TRAIT_UNCONVERTABLE) || issilicon(target) || isbot(target) || isdrone(target))
return FALSE //can't convert machines, shielded, or braindead
return TRUE
diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm
index 2cdb2c2e6f468..773f890d25dbb 100644
--- a/code/modules/antagonists/cult/cult_structures.dm
+++ b/code/modules/antagonists/cult/cult_structures.dm
@@ -201,7 +201,7 @@
* Returns TRUE if the user is a living mob that is a cultist and is not incapacitated.
*/
/obj/structure/destructible/cult/item_dispenser/proc/check_menu(mob/user)
- return isliving(user) && is_cultist_check(user) && !user.incapacitated()
+ return isliving(user) && is_cultist_check(user) && !user.incapacitated
// Spooky looking door used in gateways. Or something.
/obj/effect/gateway
diff --git a/code/modules/antagonists/cult/datums/cult_team.dm b/code/modules/antagonists/cult/datums/cult_team.dm
index 72c7df8bf5d14..4d77f65f588df 100644
--- a/code/modules/antagonists/cult/datums/cult_team.dm
+++ b/code/modules/antagonists/cult/datums/cult_team.dm
@@ -65,7 +65,7 @@
for(var/datum/mind/mind as anything in members)
if(mind.current)
SEND_SOUND(mind.current, 'sound/ambience/antag/bloodcult/bloodcult_halos.ogg')
- to_chat(mind.current, span_cult_large(span_warning("Your cult is ascendent and the red harvest approaches - you cannot hide your true nature for much longer!!")))
+ to_chat(mind.current, span_cult_large(span_warning("Your cult is ascendant and the red harvest approaches - you cannot hide your true nature for much longer!!")))
mind.current.AddElement(/datum/element/cult_halo)
cult_ascendent = TRUE
log_game("The blood cult has ascended with [cultplayers] players.")
@@ -134,6 +134,7 @@
return "
")]
I'm sorry I won't sail back home soon,
+
son of a biscuit eater walked the plank with me coffer (or treasure chest as landlubbers call'em),
+
so I got me fishing rod, bottles, waiting to fish the booty back.
+
Luv you hun, I hope this letter find you we-"}
diff --git a/code/modules/bitrunning/event.dm b/code/modules/bitrunning/event.dm
index 16190851f3720..370957e2ebb0f 100644
--- a/code/modules/bitrunning/event.dm
+++ b/code/modules/bitrunning/event.dm
@@ -61,7 +61,7 @@
var/total = 0
for(var/datum/weakref/server_ref in cyber_control.active_servers)
var/obj/machinery/quantum_server/server = server_ref?.resolve()
- if(isnull(server))
+ if(isnull(server) || QDELETED(server))
continue
total += length(server.mutation_candidate_refs)
diff --git a/code/modules/bitrunning/netpod/ui.dm b/code/modules/bitrunning/netpod/ui.dm
index 93719fe64ebef..919ba1e174b53 100644
--- a/code/modules/bitrunning/netpod/ui.dm
+++ b/code/modules/bitrunning/netpod/ui.dm
@@ -27,7 +27,7 @@
return data
-/obj/machinery/netpod/ui_act(action, params)
+/obj/machinery/netpod/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return TRUE
diff --git a/code/modules/bitrunning/objects/landmarks.dm b/code/modules/bitrunning/objects/landmarks.dm
index ea55b96979edd..170e7ab3075b1 100644
--- a/code/modules/bitrunning/objects/landmarks.dm
+++ b/code/modules/bitrunning/objects/landmarks.dm
@@ -72,11 +72,13 @@
encrypted_crate.abstract_move(selected_crate.loc)
selected_crate.abstract_move(original_location)
+
/// A location for mobs to spawn.
/obj/effect/landmark/bitrunning/mob_segment
name = "Bitrunning modular mob segment"
icon_state = "mob_segment"
+
/// Bitrunning safehouses. Typically 7x6 rooms with a single entrance.
/obj/modular_map_root/safehouse
config_file = "strings/modular_maps/safehouse.toml"
diff --git a/code/modules/bitrunning/objects/vendor.dm b/code/modules/bitrunning/objects/vendor.dm
index abd63a9e78430..d44630bc3beed 100644
--- a/code/modules/bitrunning/objects/vendor.dm
+++ b/code/modules/bitrunning/objects/vendor.dm
@@ -62,7 +62,7 @@
/obj/machinery/computer/order_console/bitrunning/retrieve_points(obj/item/card/id/id_card)
return round(id_card.registered_account.bitrunning_points)
-/obj/machinery/computer/order_console/bitrunning/ui_act(action, params)
+/obj/machinery/computer/order_console/bitrunning/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(!.)
flick("vendor_off", src)
diff --git a/code/modules/bitrunning/orders/tech.dm b/code/modules/bitrunning/orders/tech.dm
index 7e987e4818104..9dd1db17c799d 100644
--- a/code/modules/bitrunning/orders/tech.dm
+++ b/code/modules/bitrunning/orders/tech.dm
@@ -2,38 +2,38 @@
category_index = CATEGORY_BITRUNNING_TECH
/datum/orderable_item/bitrunning_tech/item_tier1
- cost_per_order = 1000
+ cost_per_order = 750
item_path = /obj/item/bitrunning_disk/item/tier1
desc = "This disk contains a program that lets you equip a medical beamgun, a C4 explosive, or a box of infinite pizza."
/datum/orderable_item/bitrunning_tech/item_tier2
- cost_per_order = 1500
+ cost_per_order = 1250
item_path = /obj/item/bitrunning_disk/item/tier2
desc = "This disk contains a program that lets you equip a luxury medipen, a pistol, or an armour vest."
/datum/orderable_item/bitrunning_tech/item_tier3
- cost_per_order = 2500
+ cost_per_order = 2000
item_path = /obj/item/bitrunning_disk/item/tier3
desc = "This disk contains a program that lets you equip an advanced energy gun, a dual bladed energy sword, or a minibomb."
/datum/orderable_item/bitrunning_tech/ability_tier1
- cost_per_order = 1000
+ cost_per_order = 750
item_path = /obj/item/bitrunning_disk/ability/tier1
desc = "This disk contains a program that lets you cast Summon Cheese or Lesser Heal."
/datum/orderable_item/bitrunning_tech/ability_tier2
- cost_per_order = 1800
+ cost_per_order = 1500
item_path = /obj/item/bitrunning_disk/ability/tier2
desc = "This disk contains a program that lets you cast Fireball, Lightning Bolt, or Forcewall."
/datum/orderable_item/bitrunning_tech/ability_tier3
- cost_per_order = 3200
+ cost_per_order = 2500
item_path = /obj/item/bitrunning_disk/ability/tier3
desc = "This disk contains a program that lets you shapeshift into a lesser ashdrake, or a polar bear."
/datum/orderable_item/bitrunning_tech/flip_skillchip
- item_path = /obj/item/skillchip/matrix_flip
- cost_per_order = 2000
+ item_path = /obj/item/skillchip/matrix_taunt
+ cost_per_order = 1500
/datum/orderable_item/bitrunning_tech/pka_mod
item_path = /obj/item/bitrunning_disk/item/pka_mods
@@ -42,7 +42,7 @@
/datum/orderable_item/bitrunning_tech/pka_mod/premium
item_path = /obj/item/bitrunning_disk/item/pka_mods/premium
- cost_per_order = 1800
+ cost_per_order = 1600
desc = "This disk contains a program that lets you equip stronger modkits for the proto-kinetic accelerator. Proto-kinetic accelerator not included."
/datum/orderable_item/bitrunning_tech/pkc_mod
@@ -52,5 +52,5 @@
/datum/orderable_item/bitrunning_tech/pkc_mod/premium
item_path = /obj/item/bitrunning_disk/item/pkc_mods/premium
- cost_per_order = 1800
+ cost_per_order = 1600
desc = "This disk contains a program that lets you equip stronger trophies for the proto-kinetic crusher. Proto-kinetic crusher not included."
diff --git a/code/modules/bitrunning/server/obj_generation.dm b/code/modules/bitrunning/server/obj_generation.dm
index dabac8ae62dd9..baf427855a236 100644
--- a/code/modules/bitrunning/server/obj_generation.dm
+++ b/code/modules/bitrunning/server/obj_generation.dm
@@ -116,9 +116,13 @@
path = pick(generated_domain.mob_modules)
var/datum/modular_mob_segment/segment = new path()
- segment.spawn_mobs(get_turf(landmark))
- mutation_candidate_refs += segment.spawned_mob_refs
+
+ var/list/mob_spawns = landmark.spawn_mobs(get_turf(landmark), segment)
+ if(length(mob_spawns))
+ mutation_candidate_refs += mob_spawns
+
qdel(landmark)
+ qdel(segment)
return TRUE
diff --git a/code/modules/bitrunning/server/threats.dm b/code/modules/bitrunning/server/threats.dm
index 28d91aa4b3714..6b9a334d9252a 100644
--- a/code/modules/bitrunning/server/threats.dm
+++ b/code/modules/bitrunning/server/threats.dm
@@ -176,7 +176,7 @@
/// Removes any invalid candidates from the list
/obj/machinery/quantum_server/proc/validate_mutation_candidates()
for(var/datum/weakref/creature_ref as anything in mutation_candidate_refs)
- var/mob/living/creature = creature_ref.resolve()
+ var/mob/living/creature = creature_ref?.resolve()
if(isnull(creature) || creature.mind)
mutation_candidate_refs.Remove(creature_ref)
diff --git a/code/modules/bitrunning/virtual_domain/domains/grassland_hunt.dm b/code/modules/bitrunning/virtual_domain/domains/grassland_hunt.dm
new file mode 100644
index 0000000000000..9c9e1c7171a6c
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/grassland_hunt.dm
@@ -0,0 +1,28 @@
+/datum/lazy_template/virtual_domain/grasslands_hunt
+ name = "Grasslands Hunt"
+ desc = "A peaceful hunt in the wilderness."
+ help_text = "As a hunter, you must be able to track and kill your prey. Prove yourself."
+ is_modular = TRUE
+ key = "grasslands_hunt"
+ map_name = "grasslands_hunt"
+ mob_modules = list(/datum/modular_mob_segment/deer)
+
+
+/datum/lazy_template/virtual_domain/grasslands_hunt/setup_domain(list/created_atoms)
+ for(var/obj/effect/landmark/bitrunning/mob_segment/landmark in created_atoms)
+ RegisterSignal(landmark, COMSIG_BITRUNNING_MOB_SEGMENT_SPAWNED, PROC_REF(on_spawned))
+
+
+/// The mob segment has concluded spawning
+/datum/lazy_template/virtual_domain/grasslands_hunt/proc/on_spawned(datum/source, list/mobs)
+ SIGNAL_HANDLER
+
+ for(var/mob/living/fauna as anything in mobs)
+ RegisterSignal(fauna, COMSIG_LIVING_DEATH, PROC_REF(on_death))
+
+
+/// Handles deer being slain
+/datum/lazy_template/virtual_domain/grasslands_hunt/proc/on_death(datum/source)
+ SIGNAL_HANDLER
+
+ add_points(3.5)
diff --git a/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm b/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm
index b745a4746aa24..84eb53e026a29 100644
--- a/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm
+++ b/code/modules/bitrunning/virtual_domain/domains/island_brawl.dm
@@ -21,9 +21,17 @@
for(var/obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander/spawner in created_atoms)
custom_spawns += spawner
+ RegisterSignal(spawner, COMSIG_QDELETING, PROC_REF(on_spawner_qdeleted))
RegisterSignals(spawner, list(COMSIG_GHOSTROLE_SPAWNED, COMSIG_BITRUNNER_SPAWNED), PROC_REF(on_spawn))
+/datum/lazy_template/virtual_domain/island_brawl/proc/on_spawner_qdeleted(obj/effect/mob_spawn/ghost_role/human/virtual_domain/islander/source)
+ SIGNAL_HANDLER
+
+ custom_spawns -= source
+ UnregisterSignal(source, COMSIG_QDELETING)
+
+
/// Someone has spawned in, so we check for their death
/datum/lazy_template/virtual_domain/island_brawl/proc/on_spawn(datum/source, mob/living/spawned_mob)
SIGNAL_HANDLER
diff --git a/code/modules/bitrunning/virtual_domain/domains/meta_central.dm b/code/modules/bitrunning/virtual_domain/domains/meta_central.dm
new file mode 100644
index 0000000000000..0bc35ceaf40e4
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/domains/meta_central.dm
@@ -0,0 +1,12 @@
+/datum/lazy_template/virtual_domain/meta_central
+ name = "Meta Central"
+ cost = BITRUNNER_COST_LOW
+ desc = "Every so often, workers demand rights from Nanotrasen. This is unprofitable."
+ difficulty = BITRUNNER_DIFFICULTY_LOW
+ forced_outfit = /datum/outfit/job/security/mod
+ help_text = "Respond to the worker's demands with sanctioned violence. Recover valuable materials that may be scattered around. Just remember your training: Always assume guilt, they can confess in medbay... Or something like that."
+ is_modular = TRUE
+ key = "meta_central"
+ map_name = "meta_central"
+ mob_modules = list(/datum/modular_mob_segment/revolutionary)
+ reward_points = BITRUNNER_REWARD_LOW
diff --git a/code/modules/bitrunning/virtual_domain/modular_mob_segment.dm b/code/modules/bitrunning/virtual_domain/modular_mob_segment.dm
index b8c5880a69c38..225912797b28a 100644
--- a/code/modules/bitrunning/virtual_domain/modular_mob_segment.dm
+++ b/code/modules/bitrunning/virtual_domain/modular_mob_segment.dm
@@ -3,27 +3,49 @@
#define SPAWN_UNLIKELY 35
#define SPAWN_RARE 10
+
+/// Handles spawning mobs for this landmark. Sends a signal when done.
+/obj/effect/landmark/bitrunning/mob_segment/proc/spawn_mobs(turf/origin, datum/modular_mob_segment/segment)
+ var/list/mob/living/spawned_mobs = list()
+
+ spawned_mobs += segment.spawn_mobs(origin)
+
+ SEND_SIGNAL(src, COMSIG_BITRUNNING_MOB_SEGMENT_SPAWNED, spawned_mobs)
+
+ var/list/datum/weakref/mob_refs = list()
+ for(var/mob/living/spawned as anything in spawned_mobs)
+ if(QDELETED(spawned))
+ continue
+
+ mob_refs += WEAKREF(spawned)
+
+ return mob_refs
+
+
+/**
+ * A list for mob spawning landmarks to use.
+ */
/datum/modular_mob_segment
- /// Spawn no more than this amount
- var/max = 4
/// Set this to false if you want explicitly what's in the list to spawn
var/exact = FALSE
/// The list of mobs to spawn
- var/list/mob/living/mobs = list()
- /// The mobs spawned from this segment
- var/list/spawned_mob_refs = list()
+ var/list/mobs = list()
+ /// Spawn no more than this amount
+ var/max = 4
/// Chance this will spawn (1 - 100)
var/probability = SPAWN_LIKELY
+
/// Spawns mobs in a circle around the location
/datum/modular_mob_segment/proc/spawn_mobs(turf/origin)
if(!prob(probability))
return
- var/total_amount = exact ? rand(1, max) : length(mobs)
+ var/list/mob/living/spawned_mobs = list()
- shuffle_inplace(mobs)
+ var/total_amount = exact ? length(mobs) : rand(1, max)
+ shuffle_inplace(mobs)
var/list/turf/nearby = list()
for(var/turf/tile as anything in RANGE_TURFS(2, origin))
@@ -46,7 +68,10 @@
var/mob/living/mob = new path(destination)
nearby -= destination
- spawned_mob_refs.Add(WEAKREF(mob))
+ spawned_mobs += mob
+
+ return spawned_mobs
+
// Some generic mob segments. If you want to add generic ones for any map, add them here
@@ -55,41 +80,48 @@
/mob/living/basic/pet/gondola,
)
+
/datum/modular_mob_segment/corgis
max = 2
mobs = list(
/mob/living/basic/pet/dog/corgi,
)
+
/datum/modular_mob_segment/monkeys
mobs = list(
/mob/living/carbon/human/species/monkey,
)
+
/datum/modular_mob_segment/syndicate_team
mobs = list(
/mob/living/basic/trooper/syndicate/ranged,
/mob/living/basic/trooper/syndicate/melee,
)
+
/datum/modular_mob_segment/abductor_agents
mobs = list(
/mob/living/basic/trooper/abductor/melee,
/mob/living/basic/trooper/abductor/ranged,
)
+
/datum/modular_mob_segment/syndicate_elite
mobs = list(
/mob/living/basic/trooper/syndicate/melee/sword/space/stormtrooper,
/mob/living/basic/trooper/syndicate/ranged/space/stormtrooper,
)
+
/datum/modular_mob_segment/bears
max = 2
mobs = list(
/mob/living/basic/bear,
)
+
/datum/modular_mob_segment/bees
exact = TRUE
mobs = list(
@@ -100,33 +132,39 @@
/mob/living/basic/bee/queen,
)
+
/datum/modular_mob_segment/bees_toxic
mobs = list(
/mob/living/basic/bee/toxin,
)
+
/datum/modular_mob_segment/blob_spores
mobs = list(
/mob/living/basic/blob_minion,
)
+
/datum/modular_mob_segment/carps
mobs = list(
/mob/living/basic/carp,
)
+
/datum/modular_mob_segment/hivebots
mobs = list(
/mob/living/basic/hivebot,
/mob/living/basic/hivebot/range,
)
+
/datum/modular_mob_segment/hivebots_strong
mobs = list(
/mob/living/basic/hivebot/strong,
/mob/living/basic/hivebot/range,
)
+
/datum/modular_mob_segment/lavaland_assorted
mobs = list(
/mob/living/basic/mining/basilisk,
@@ -135,6 +173,7 @@
/mob/living/basic/mining/lobstrosity,
)
+
/datum/modular_mob_segment/spiders
mobs = list(
/mob/living/basic/spider/giant/ambush,
@@ -144,11 +183,13 @@
/mob/living/basic/spider/giant/midwife,
)
+
/datum/modular_mob_segment/venus_trap
mobs = list(
/mob/living/basic/venus_human_trap,
)
+
/datum/modular_mob_segment/xenos
mobs = list(
/mob/living/basic/alien,
@@ -156,6 +197,20 @@
/mob/living/basic/alien/drone,
)
+
+/datum/modular_mob_segment/deer
+ max = 1
+ mobs = list(
+ /mob/living/basic/deer,
+ )
+
+
+/datum/modular_mob_segment/revolutionary
+ mobs = list(
+ /mob/living/basic/revolutionary,
+ )
+
+
#undef SPAWN_ALWAYS
#undef SPAWN_LIKELY
#undef SPAWN_UNLIKELY
diff --git a/code/modules/capture_the_flag/ctf_classes.dm b/code/modules/capture_the_flag/ctf_classes.dm
index 0482bd1ec88eb..8f6a03ba7dfc4 100644
--- a/code/modules/capture_the_flag/ctf_classes.dm
+++ b/code/modules/capture_the_flag/ctf_classes.dm
@@ -55,7 +55,7 @@
var/obj/item/radio/headset = human_to_equip.ears
headset.set_frequency(team_radio_freq)
headset.freqlock = RADIO_FREQENCY_LOCKED
- headset.independent = TRUE
+ headset.special_channels |= RADIO_SPECIAL_CENTCOM
human_to_equip.dna.species.stunmod = 0
/datum/outfit/ctf/instagib
diff --git a/code/modules/cards/cardhand.dm b/code/modules/cards/cardhand.dm
index ac14e17fea61b..8fc9b4d0dc70a 100644
--- a/code/modules/cards/cardhand.dm
+++ b/code/modules/cards/cardhand.dm
@@ -67,7 +67,7 @@
qdel(src) // cardhand is empty now so delete it
/obj/item/toy/cards/cardhand/proc/check_menu(mob/living/user)
- return isliving(user) && !user.incapacitated()
+ return isliving(user) && !user.incapacitated
/obj/item/toy/cards/cardhand/attackby(obj/item/weapon, mob/living/user, params, flip_card = FALSE)
var/obj/item/toy/singlecard/card
diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm
index dd779c796ce8f..cd86761587680 100644
--- a/code/modules/cargo/centcom_podlauncher.dm
+++ b/code/modules/cargo/centcom_podlauncher.dm
@@ -191,7 +191,7 @@ ADMIN_VERB(centcom_podlauncher, R_ADMIN, "Config/Launch Supplypod", "Configure a
data["soundVolume"] = temp_pod.soundVolume //Admin sound to play when the pod leaves
return data
-/datum/centcom_podlauncher/ui_act(action, params)
+/datum/centcom_podlauncher/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm
index 4942ea2c06a93..0a2dcfec4b0f0 100644
--- a/code/modules/cargo/expressconsole.dm
+++ b/code/modules/cargo/expressconsole.dm
@@ -128,6 +128,7 @@
if(.)
return
+ var/mob/user = ui.user
switch(action)
if("LZCargo")
usingBeacon = FALSE
@@ -143,7 +144,7 @@
if(D.adjust_money(-BEACON_COST))
cooldown = 10//a ~ten second cooldown for printing beacons to prevent spam
var/obj/item/supplypod_beacon/C = new /obj/item/supplypod_beacon(drop_location())
- C.link_console(src, usr)//rather than in beacon's Initialize(), we can assign the computer to the beacon by reusing this proc)
+ C.link_console(src, user)//rather than in beacon's Initialize(), we can assign the computer to the beacon by reusing this proc)
printed_beacons++//printed_beacons starts at 0, so the first one out will be called beacon # 1
beacon.name = "Supply Pod Beacon #[printed_beacons]"
@@ -159,13 +160,13 @@
CRASH("Unknown supply pack id given by express order console ui. ID: [params["id"]]")
var/name = "*None Provided*"
var/rank = "*None Provided*"
- var/ckey = usr.ckey
- if(ishuman(usr))
- var/mob/living/carbon/human/H = usr
+ var/ckey = user.ckey
+ if(ishuman(user))
+ var/mob/living/carbon/human/H = user
name = H.get_authentification_name()
rank = H.get_assignment(hand_first = TRUE)
- else if(HAS_SILICON_ACCESS(usr))
- name = usr.real_name
+ else if(HAS_SILICON_ACCESS(user))
+ name = user.real_name
rank = "Silicon"
var/reason = ""
var/list/empty_turfs
diff --git a/code/modules/cargo/goodies.dm b/code/modules/cargo/goodies.dm
index 4751b45aae89b..f7ce106d58048 100644
--- a/code/modules/cargo/goodies.dm
+++ b/code/modules/cargo/goodies.dm
@@ -221,7 +221,7 @@
/datum/supply_pack/goody/fishing_toolbox
name = "Fishing Toolbox"
- desc = "Complete toolbox set for your fishing adventure. Advanced hooks and lines sold separetely."
+ desc = "Complete toolbox set for your fishing adventure. Contains a valuable tip. Advanced hooks and lines sold separetely."
cost = PAYCHECK_CREW * 2
contains = list(/obj/item/storage/toolbox/fishing)
@@ -237,6 +237,12 @@
cost = PAYCHECK_CREW
contains = list(/obj/item/storage/box/fishing_lines)
+/datum/supply_pack/goody/fishing_lure_set
+ name = "Fishing Lures Set"
+ desc = "A set of bite-resistant fishing lures to fish all (most) sort of fish. Beat randomness to a curb today!"
+ cost = PAYCHECK_CREW * 8
+ contains = list(/obj/item/storage/box/fishing_lures)
+
/datum/supply_pack/goody/fishing_hook_rescue
name = "Rescue Fishing Hook Single-Pack"
desc = "For when your fellow miner has inevitably fallen into a chasm, and it's up to you to save them."
@@ -252,7 +258,7 @@
/datum/supply_pack/goody/fish_feed
name = "Can of Fish Food Single-Pack"
desc = "For keeping your little friends fed and alive."
- cost = PAYCHECK_CREW * 1
+ cost = PAYCHECK_CREW
contains = list(/obj/item/fish_feed)
/datum/supply_pack/goody/naturalbait
@@ -321,3 +327,9 @@
cost = PAYCHECK_COMMAND * 18
access_view = ACCESS_WEAPONS
contains = list(/obj/item/gun/ballistic/shotgun/doublebarrel)
+
+/datum/supply_pack/goody/experimental_medication
+ name = "Experimental Medication Single-Pack"
+ desc = "A single bottle of Interdyne brand experimental medication, used for treating people suffering from hereditary manifold disease."
+ cost = PAYCHECK_CREW * 6.5
+ contains = list(/obj/item/storage/pill_bottle/sansufentanyl)
diff --git a/code/modules/cargo/markets/market_item.dm b/code/modules/cargo/markets/market_item.dm
index d7a4dd4c0eef3..faa6c45d795c4 100644
--- a/code/modules/cargo/markets/market_item.dm
+++ b/code/modules/cargo/markets/market_item.dm
@@ -30,6 +30,9 @@
/// Probability for this item to be available. Used by SSmarket on init.
var/availability_prob
+ /// If set, this icon will be shown in the UI.
+ var/html_icon
+
///The identifier for the market item, generated on runtime and used to access them in the market categories.
var/identifier
@@ -51,9 +54,11 @@
//we're replacing the item to sell, and the old item is an instance!
if(ismovable(item))
UnregisterSignal(item, COMSIG_QDELETING)
+ html_icon = null
item = path_or_ref
identifier = "[path_or_ref]"
if(ismovable(path_or_ref))
+ html_icon = icon2base64(getFlatIcon(item, no_anim=TRUE))
RegisterSignal(item, COMSIG_QDELETING, PROC_REF(on_item_del))
identifier = "[REF(src)]"
diff --git a/code/modules/cargo/markets/market_items/local_goods.dm b/code/modules/cargo/markets/market_items/local_goods.dm
new file mode 100644
index 0000000000000..d81c38fec98ba
--- /dev/null
+++ b/code/modules/cargo/markets/market_items/local_goods.dm
@@ -0,0 +1,25 @@
+///A special category for goods placed on the market by station by someone with the LTSRBT.
+/datum/market_item/local_good
+ category = "Local Goods"
+ abstract_path = /datum/market_item/local_good
+ stock = 1
+ availability_prob = 100
+ restockable = FALSE
+ var/datum/bank_account/seller
+
+/datum/market_item/local_good/New(atom/movable/thing, datum/bank_account/seller)
+ ..()
+ set_item(thing)
+ src.seller = seller
+ if(seller)
+ RegisterSignal(seller, COMSIG_QDELETING, PROC_REF(delete_reference))
+
+/datum/market_item/local_good/buy(obj/item/market_uplink/uplink, mob/buyer, shipping_method, legal_status)
+ . = ..()
+ if(. && seller)
+ seller.adjust_money(round(price * (1 - MARKET_WITHHOLDING_TAX)), "Market: Item Sold")
+ QDEL_IN(src, 10 MINUTES) //This category cannot hold more than 40 items at a time, so we need to clear sold items.
+
+/datum/market_item/local_good/proc/delete_reference(datum/source)
+ SIGNAL_HANDLER
+ seller = null
diff --git a/code/modules/cargo/markets/market_items/weapons.dm b/code/modules/cargo/markets/market_items/weapons.dm
index 4f20cf865bc9b..12241450ba59a 100644
--- a/code/modules/cargo/markets/market_items/weapons.dm
+++ b/code/modules/cargo/markets/market_items/weapons.dm
@@ -24,6 +24,16 @@
stock_max = 4
availability_prob = 40
+/datum/market_item/weapon/buckshot
+ name = "Box of Buckshot Shells"
+ desc = "It wasn't easy since buckshot has been made illegal all over this sector of space, but \
+ we managed to find a large cache of it... somewhere. A word of caution, the stuff may be a tad old."
+ stock_max = 3
+ availability_prob = 35
+ item = /obj/item/storage/box/lethalshot/old
+ price_min = CARGO_CRATE_VALUE * 3
+ price_max = CARGO_CRATE_VALUE * 4.5
+
/datum/market_item/weapon/bone_spear
name = "Bone Spear"
desc = "Authentic tribal spear, made from real bones! A steal at any price, especially if you're a caveman."
diff --git a/code/modules/cargo/markets/market_telepad.dm b/code/modules/cargo/markets/market_telepad.dm
index 799395f30d125..53a3d73ee486a 100644
--- a/code/modules/cargo/markets/market_telepad.dm
+++ b/code/modules/cargo/markets/market_telepad.dm
@@ -1,4 +1,5 @@
-#define DEFAULT_RESTOCK_COST 675
+#define DEFAULT_RESTOCK_COST CARGO_CRATE_VALUE * 3.375
+#define PLACE_ON_MARKET_COST PAYCHECK_LOWER * 1.2
/obj/item/circuitboard/machine/ltsrbt
name = "LTSRBT (Machine Board)"
@@ -14,13 +15,14 @@
/obj/machinery/ltsrbt
name = "Long-To-Short-Range-Bluespace-Transceiver"
desc = "The LTSRBT is a compact teleportation machine for receiving and sending items outside the station and inside the station.\nUsing teleportation frequencies stolen from NT it is near undetectable.\nEssential for any illegal market operations on NT stations.\n"
- icon = 'icons/obj/machines/telecomms.dmi'
- icon_state = "exonet_node_idle"
- base_icon_state = "exonet_node"
+ icon = 'icons/obj/machines/ltsrbt.dmi'
+ icon_state = "ltsrbt_idle"
+ base_icon_state = "ltsrbt"
circuit = /obj/item/circuitboard/machine/ltsrbt
density = TRUE
idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 2
+ interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND
/// Divider for energy_usage_per_teleport.
var/power_efficiency = 1
@@ -38,6 +40,12 @@
var/datum/market_purchase/transmitting
/// Queue for purchases that the machine should receive and send.
var/list/datum/market_purchase/queue = list()
+ /// The name of the market item that we've set on the UI
+ var/current_name = ""
+ /// The desc of the market item that we've set on the UI
+ var/current_desc = ""
+ /// The price of the market item that we've set on the UI
+ var/current_price = CARGO_CRATE_VALUE
/**
* Attacking the machinery with enough credits will restock the markets, allowing for more/better items.
* The cost doubles each time this is done.
@@ -48,32 +56,267 @@
. = ..()
register_context()
SSmarket.telepads += src
+ ADD_TRAIT(src, TRAIT_SECLUDED_LOCATION, INNATE_TRAIT) //you cannot sell disky, boss.
+ update_appearance()
/obj/machinery/ltsrbt/Destroy()
SSmarket.telepads -= src
// Bye bye orders.
if(length(SSmarket.telepads))
- for(var/datum/market_purchase/P in queue)
- SSmarket.queue_item(P)
- . = ..()
+ for(var/datum/market_purchase/purchase in queue)
+ SSmarket.queue_item(purchase)
+ if(receiving)
+ SSmarket.queue_item(receiving)
+ queue = null
+ receiving = null
+ transmitting = null
+ return ..()
/obj/machinery/ltsrbt/add_context(atom/source, list/context, obj/item/held_item, mob/user)
- if(held_item && held_item.get_item_credit_value())
- context[SCREENTIP_CONTEXT_LMB] = "Restock"
+ if(held_item)
+ if(state_open)
+ context[SCREENTIP_CONTEXT_LMB] = "Insert"
+ return CONTEXTUAL_SCREENTIP_SET
+ if(held_item.get_item_credit_value() && !(machine_stat & NOPOWER))
+ context[SCREENTIP_CONTEXT_LMB] = "Restock"
+ return CONTEXTUAL_SCREENTIP_SET
+ return NONE
+ if(state_open)
+ context[SCREENTIP_CONTEXT_LMB] = "Close"
return CONTEXTUAL_SCREENTIP_SET
- return NONE
+ context[SCREENTIP_CONTEXT_LMB] = "Open"
+ if(occupant && !(machine_stat & NOPOWER))
+ context[SCREENTIP_CONTEXT_RMB] = "Place on market"
+ return CONTEXTUAL_SCREENTIP_SET
/obj/machinery/ltsrbt/examine(mob/user)
. = ..()
- if(machine_stat & NOPOWER)
- . += span_info("A display reads: \"Current market restock price: [EXAMINE_HINT("[restock_cost] cr")]\".")
+ if(!(machine_stat & NOPOWER))
+ . += span_info("A small display reads:")
+ . += span_tinynoticeital("Current market restock price: [EXAMINE_HINT("[restock_cost] cr")].")
+ . += span_tinynoticeital("Market placement fee: [EXAMINE_HINT("[PLACE_ON_MARKET_COST] cr")].")
+ . += span_tinynoticeital("Withholding tax on local items: [EXAMINE_HINT("[MARKET_WITHHOLDING_TAX * 100]%")].")
/obj/machinery/ltsrbt/update_icon_state()
. = ..()
if(machine_stat & NOPOWER)
icon_state = "[base_icon_state]_off"
else
- icon_state = "[base_icon_state][(receiving || length(queue)) ? "" : "_idle"]"
+ icon_state = "[base_icon_state][(receiving || length(queue) || occupant) ? "" : "_idle"]"
+
+/obj/machinery/ltsrbt/update_overlays()
+ . = ..()
+ if(!state_open)
+ . += "[base_icon_state]_closed"
+ else
+ var/mutable_appearance/overlay = mutable_appearance(icon, "[base_icon_state]_open")
+ overlay.pixel_w -= 2
+ overlay.pixel_z -= 1
+ . += overlay
+
+/obj/machinery/ltsrbt/attack_hand(mob/user, list/modifiers)
+ . = ..()
+ if(.)
+ return
+ if(!state_open)
+ open_machine(density_to_set = TRUE)
+ else
+ close_machine()
+
+/obj/machinery/ltsrbt/open_machine(drop = TRUE, density_to_set = FALSE)
+ . = ..()
+ playsound(src, 'sound/machines/oven/oven_open.ogg', 75, TRUE)
+
+/obj/machinery/ltsrbt/close_machine(atom/movable/target, density_to_set = TRUE)
+ . = ..()
+ playsound(src, 'sound/machines/oven/oven_close.ogg', 75, TRUE)
+
+/obj/machinery/ltsrbt/set_occupant(obj/item/new_occupant)
+ . = ..()
+ if(new_occupant)
+ current_name = new_occupant.name
+ current_desc = new_occupant.desc
+
+/obj/machinery/ltsrbt/can_be_occupant(atom/movable/atom)
+ return isitem(atom) && !atom.anchored
+
+/obj/machinery/ltsrbt/Exited(atom/movable/gone)
+ if(gone == occupant)
+ current_price = initial(current_price)
+ current_name = ""
+ current_desc = ""
+ update_appearance(UPDATE_ICON_STATE)
+ return ..()
+
+/obj/machinery/ltsrbt/attack_hand_secondary(mob/user, list/modifiers)
+ . = ..()
+ if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN)
+ return
+ if(state_open)
+ balloon_alert(user, "close it first!")
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+ if(!occupant)
+ balloon_alert(user, "nothing loaded!")
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+ if(machine_stat & NOPOWER)
+ balloon_alert(user, "machine unpowered!")
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+ if(!COOLDOWN_FINISHED(src, recharge_cooldown))
+ balloon_alert(user, "on cooldown!")
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+ ui_interact(user)
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+
+/obj/machinery/ltsrbt/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
+ if(user.combat_mode)
+ return NONE
+
+ var/creds_value = tool.get_item_credit_value()
+
+ if(state_open)
+ if(locate(/mob/living) in tool.get_all_contents())
+ say("Living being detected, cannot sell!")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE)
+ return ITEM_INTERACT_BLOCKING
+ if(!user.transferItemToLoc(tool, src))
+ balloon_alert(user, "stuck to your hands!")
+ return ITEM_INTERACT_BLOCKING
+ balloon_alert(user, "item loaded")
+ close_machine(tool)
+ return ITEM_INTERACT_SUCCESS
+ else if(!creds_value)
+ balloon_alert(user, "open the machine!")
+ return ITEM_INTERACT_BLOCKING
+
+ if(machine_stat & NOPOWER)
+ return
+
+ if(creds_value < restock_cost)
+ say("Insufficient credits!")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE)
+ return ITEM_INTERACT_BLOCKING
+
+ if(istype(tool, /obj/item/holochip))
+ var/obj/item/holochip/chip = tool
+ chip.spend(restock_cost)
+ else
+ qdel(tool)
+ if(creds_value != restock_cost)
+ var/obj/item/holochip/change = new(loc, creds_value - restock_cost)
+ user.put_in_hands(change)
+
+ SSmarket.restock()
+ restock_cost *= 2
+ return ITEM_INTERACT_SUCCESS
+
+/obj/machinery/ltsrbt/ui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "LTSRBT", name)
+ ui.open()
+
+/obj/machinery/ltsrbt/ui_state()
+ if(!occupant || !COOLDOWN_FINISHED(src, recharge_cooldown))
+ return GLOB.never_state //close it.
+ else
+ return GLOB.default_state
+
+#define LTSRBT_MIN_PRICE PAYCHECK_LOWER
+#define LTSRBT_MAX_PRICE CARGO_CRATE_VALUE * 50
+
+/obj/machinery/ltsrbt/ui_static_data(mob/user)
+ var/list/data = list()
+ data["loaded_icon"] = icon2base64(getFlatIcon(occupant, no_anim=TRUE))
+ data["min_price"] = LTSRBT_MIN_PRICE
+ data["max_price"] = LTSRBT_MAX_PRICE
+ return data
+
+/obj/machinery/ltsrbt/ui_data(mob/user)
+ var/list/data = list()
+ data["name"] = current_name
+ data["price"] = current_price
+ data["desc"] = current_desc
+ return data
+
+/obj/machinery/ltsrbt/ui_act(action, list/params)
+ . = ..()
+ if(.)
+ return
+ switch(action)
+ if("change_name")
+ var/value = params["value"]
+ if(!CAN_BYPASS_FILTER(usr) && is_ic_filtered_for_pdas(value))
+ return TRUE
+ current_name = trim(value, MAX_NAME_LEN)
+ return TRUE
+ if("change_desc")
+ var/value = params["value"]
+ if(!CAN_BYPASS_FILTER(usr) && is_ic_filtered_for_pdas(value))
+ return TRUE
+ current_desc = trim(value, MAX_DESC_LEN)
+ return TRUE
+ if("change_price")
+ current_price = clamp(params["value"], LTSRBT_MIN_PRICE, LTSRBT_MAX_PRICE)
+ return TRUE
+ if("place_on_market")
+ place_on_market(usr)
+ return TRUE
+
+#undef LTSRBT_MIN_PRICE
+#undef LTSRBT_MAX_PRICE
+
+#define LTSRBT_MAX_MARKET_ITEMS 40
+/obj/machinery/ltsrbt/proc/place_on_market(mob/user)
+ if(QDELETED(occupant))
+ return
+ if(locate(/mob/living) in occupant.get_all_contents())
+ say("Living being detected, cannot sell!")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE)
+ return
+ var/datum/bank_account/account
+ var/datum/market/our_market = SSmarket.markets[/datum/market/blackmarket]
+ if(!isAdminGhostAI(user))
+ if(!isliving(user))
+ return
+ if(length(our_market.available_items[/datum/market_item/local_good::category]) >= LTSRBT_MAX_MARKET_ITEMS)
+ say("Local market saturated, buy some goods first!")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE)
+ return
+ var/mob/living/living_user = user
+ var/obj/item/card/id/card = living_user.get_idcard(TRUE)
+ if(!(card?.registered_account))
+ say("No bank account to charge market fees detected!")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE)
+ return
+ if(!card.registered_account.adjust_money(-PLACE_ON_MARKET_COST, "Market: Placement Fee"))
+ say("Insufficient credits!")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE)
+ return
+ account = card.registered_account
+
+ var/obj/item/item = occupant //occupant, name, price and desc will be null'd once it exits the machine so we need this.
+ var/name_to_use = current_name || item.name
+ var/desc_to_use = current_desc
+ if(account)
+ desc_to_use += "[current_desc ? " - " : ""]Seller: [account.account_holder]"
+ var/price_to_use = current_price
+ item.moveToNullspace()
+ //Something happened and the item was deleted or relocated as soon as it was moved to nullspace.
+ if(QDELETED(item) || item.loc != null)
+ say("Runtime at market_placement.dm, line 153: item gone!") //metajoke
+ return
+ var/datum/market_item/local_good/new_item = new(item, account)
+ new_item.name = name_to_use
+ new_item.desc = desc_to_use
+ new_item.price = price_to_use
+
+ our_market.add_item(new_item)
+
+ say("Item placed on the market!")
+ playsound(src, 'sound/effects/cashregister.ogg', 40, FALSE)
+ COOLDOWN_START(src, recharge_cooldown, recharge_time * 3)
+
+#undef LTSRBT_MAX_MARKET_ITEMS
/obj/machinery/ltsrbt/RefreshParts()
. = ..()
@@ -81,7 +324,6 @@
// On tier 4 recharge_time should be 20 and by default it is 80 as scanning modules should be tier 1.
for(var/datum/stock_part/scanning_module/scanning_module in component_parts)
recharge_time -= scanning_module.tier * 1 SECONDS
- recharge_cooldown = recharge_time
power_efficiency = 0
for(var/datum/stock_part/micro_laser/laser in component_parts)
@@ -132,43 +374,17 @@
transmitting = receiving
receiving = null
- COOLDOWN_START(src, recharge_cooldown, recharge_time)
return
if(transmitting)
if(transmitting.item.loc == turf)
do_teleport(transmitting.item, get_turf(transmitting.uplink))
use_energy(energy_usage_per_teleport / power_efficiency)
QDEL_NULL(transmitting)
+ COOLDOWN_START(src, recharge_cooldown, recharge_time)
return
if(length(queue))
receiving = pick_n_take(queue)
-/obj/machinery/ltsrbt/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
- var/creds_value = tool.get_item_credit_value()
- if(!creds_value)
- return NONE
-
- . = ITEM_INTERACT_SUCCESS
-
- if(machine_stat & NOPOWER)
- return
-
- if(creds_value < restock_cost)
- say("Insufficient credits!")
- playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE)
- return
-
- if(istype(tool, /obj/item/holochip))
- var/obj/item/holochip/chip = tool
- chip.spend(restock_cost)
- else
- qdel(tool)
- if(creds_value != restock_cost)
- var/obj/item/holochip/change = new(creds_value - restock_cost)
- user.put_in_hands(change)
-
- SSmarket.restock()
- restock_cost *= 2
-
#undef DEFAULT_RESTOCK_COST
+#undef PLACE_ON_MARKET_COST
diff --git a/code/modules/cargo/markets/market_uplink.dm b/code/modules/cargo/markets/market_uplink.dm
index a324a2f0409be..17cad32042668 100644
--- a/code/modules/cargo/markets/market_uplink.dm
+++ b/code/modules/cargo/markets/market_uplink.dm
@@ -80,7 +80,8 @@
"name" = item.name,
"cost" = item.price,
"amount" = item.stock,
- "desc" = item.desc || item.name
+ "desc" = item.desc || item.name,
+ "html_icon" = item.html_icon,
))
return data
@@ -97,7 +98,7 @@
))
return data
-/obj/item/market_uplink/ui_act(action, params)
+/obj/item/market_uplink/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm
index c675352d024b2..a10bb3da5c00c 100644
--- a/code/modules/cargo/order.dm
+++ b/code/modules/cargo/order.dm
@@ -10,10 +10,14 @@
#define MANIFEST_ERROR_ITEM (1 << 2)
/obj/item/paper/fluff/jobs/cargo/manifest
+ can_become_message_in_bottle = FALSE //A lot of these are spawned each round, they'd only dilute the pool and make it boring.
var/order_cost = 0
var/order_id = 0
var/errors = 0
+/obj/item/paper/requisition
+ can_become_message_in_bottle = FALSE //A lot of these are spawned each round, they'd only dilute the pool and make it boring.
+
/obj/item/paper/fluff/jobs/cargo/manifest/Initialize(mapload, id, cost, manifest_can_fail = TRUE)
. = ..()
order_id = id
@@ -99,7 +103,7 @@
return round(cost)
/datum/supply_order/proc/generateRequisition(turf/T)
- var/obj/item/paper/requisition_paper = new(T)
+ var/obj/item/paper/requisition/requisition_paper = new(T)
requisition_paper.name = "requisition form - #[id] ([pack.name])"
var/requisition_text = "[station_name()] Supply Requisition
"
diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm
index d835c52f1e859..ae46d9943818b 100644
--- a/code/modules/cargo/orderconsole.dm
+++ b/code/modules/cargo/orderconsole.dm
@@ -329,7 +329,7 @@
else
//create the paper from the SSshuttle.shopping_list
if(length(SSshuttle.shopping_list))
- var/obj/item/paper/requisition_paper = new(get_turf(src))
+ var/obj/item/paper/requisition/requisition_paper = new(get_turf(src))
requisition_paper.name = "requisition form - [station_time_timestamp()]"
var/requisition_text = "[station_name()] Supply Requisition
"
requisition_text += "
"
diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm
index de84a263597da..a25c47c5d9f88 100644
--- a/code/modules/cargo/packs/costumes_toys.dm
+++ b/code/modules/cargo/packs/costumes_toys.dm
@@ -90,7 +90,7 @@
/datum/supply_pack/costumes_toys/knucklebones
name = "Knucklebones Game Crate"
desc = "A fun dice game definitely not invented by a cult. Consult your local chaplain regarding \
- approved religious activity. Contains eighteen d6, one white crayon, and instructions on how to play."
+ approved religious activity. Contains eighteen d6, one stick of chalk, and instructions on how to play."
cost = CARGO_CRATE_VALUE * 2
contains = list(/obj/item/dice/d6 = 18,
/obj/item/paper/guides/knucklebone,
diff --git a/code/modules/cargo/packs/engineering.dm b/code/modules/cargo/packs/engineering.dm
index 771cba47df61d..e8255a58e6431 100644
--- a/code/modules/cargo/packs/engineering.dm
+++ b/code/modules/cargo/packs/engineering.dm
@@ -76,7 +76,7 @@
cost = CARGO_CRATE_VALUE * 4
contains = list(/obj/item/inducer/orderable = 2)
crate_name = "inducer crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
+ crate_type = /obj/structure/closet/crate/nakamura
/datum/supply_pack/engineering/pacman
name = "P.A.C.M.A.N Generator Crate"
@@ -86,7 +86,7 @@
access_view = ACCESS_ENGINEERING
contains = list(/obj/machinery/power/port_gen/pacman)
crate_name = "\improper PACMAN generator crate"
- crate_type = /obj/structure/closet/crate/engineering/electrical
+ crate_type = /obj/structure/closet/crate/nakamura
/datum/supply_pack/engineering/power
name = "Power Cell Crate"
@@ -328,3 +328,12 @@
)
crate_name = "radioactive nebula shielding (IMPORTANT)"
crate_type = /obj/structure/closet/crate/engineering
+
+/datum/supply_pack/engineering/portagrav
+ name = "Portable Gravity Unit Crate"
+ desc = "Contains a portable gravity unit, to make the clown float into the ceiling."
+ cost = CARGO_CRATE_VALUE * 4
+ access_view = ACCESS_ENGINEERING
+ contains = list(/obj/machinery/power/portagrav = 1)
+ crate_name = "portable gravity unit crate"
+ crate_type = /obj/structure/closet/crate/engineering
diff --git a/code/modules/cargo/packs/imports.dm b/code/modules/cargo/packs/imports.dm
index 98fc4d650212c..fc35e473f5ada 100644
--- a/code/modules/cargo/packs/imports.dm
+++ b/code/modules/cargo/packs/imports.dm
@@ -17,6 +17,7 @@
cost = CARGO_CRATE_VALUE * 2
contains = list(/obj/item/gun/ballistic/shotgun/toy = 8)
crate_name = "foam force crate"
+ crate_type = /obj/structure/closet/crate/freezer/donk
discountable = SUPPLY_PACK_STD_DISCOUNTABLE
/datum/supply_pack/imports/foamforce/bonus
@@ -30,6 +31,7 @@
/obj/item/ammo_box/magazine/toy/pistol = 2,
)
crate_name = "foam force crate"
+ crate_type = /obj/structure/closet/crate/freezer/donk
/datum/supply_pack/imports/meatmeatmeatmeat // MEAT MEAT MEAT MEAT
name = "MEAT MEAT MEAT MEAT MEAT"
@@ -141,6 +143,7 @@
/obj/item/gun/ballistic/automatic/wt550 = 2,
/obj/item/ammo_box/magazine/wt550m9 = 2,
)
+ crate_type = /obj/structure/closet/crate/secure/gorlex_weapons/jammed
/datum/supply_pack/imports/wt550ammo
name = "Smuggled WT-550 Ammo Crate"
@@ -153,7 +156,7 @@
/obj/item/ammo_box/magazine/wt550m9/wtic = 2,
)
crate_name = "emergency crate"
- crate_type = /obj/structure/closet/crate/internals
+ crate_type = /obj/structure/closet/crate/secure/gorlex_weapons/jammed
/datum/supply_pack/imports/shocktrooper
name = "Shocktrooper Crate"
@@ -169,6 +172,7 @@
/obj/item/clothing/suit/armor/vest,
/obj/item/clothing/head/helmet,
)
+ crate_type = /obj/structure/closet/crate/secure/gorlex_weapons/jammed
/datum/supply_pack/imports/specialops
name = "Special Ops Crate"
@@ -184,6 +188,7 @@
/obj/item/switchblade,
/obj/item/grenade/mirage = 5,
)
+ crate_type = /obj/structure/closet/crate/secure/gorlex_weapons/jammed
/datum/supply_pack/imports/russian
name = "Russian Surplus Military Gear Crate"
diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm
index 0c626223916af..a112ada0e554f 100644
--- a/code/modules/cargo/packs/medical.dm
+++ b/code/modules/cargo/packs/medical.dm
@@ -29,7 +29,7 @@
/obj/item/reagent_containers/hypospray/medipen/ekit = 3,
/obj/item/reagent_containers/hypospray/medipen/blood_loss = 3)
crate_name = "medipen crate"
- crate_type = /obj/structure/closet/crate/medical
+ crate_type = /obj/structure/closet/crate/deforest
/datum/supply_pack/medical/coroner_crate
name = "Autopsy Kit"
@@ -121,7 +121,7 @@
/datum/supply_pack/medical/experimentalmedicine
name = "Experimental Medicine Crate"
desc = "A crate containing the medication required for living with Hereditary Manifold Sickness, Sansufentanyl."
- cost = CARGO_CRATE_VALUE * 2
+ cost = CARGO_CRATE_VALUE * 3
contains = list(/obj/item/storage/pill_bottle/sansufentanyl = 2)
crate_name = "experimental medicine crate"
crate_type = /obj/structure/closet/crate/medical
@@ -138,6 +138,7 @@
/obj/item/emergency_bed,
)
crate_name = "surgical supplies crate"
+ crate_type = /obj/structure/closet/crate/deforest
/datum/supply_pack/medical/salglucanister
name = "Heavy-Duty Saline Canister"
diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm
index dfa2a66359336..6b4f38b95a03a 100644
--- a/code/modules/cargo/packs/science.dm
+++ b/code/modules/cargo/packs/science.dm
@@ -189,4 +189,4 @@
access_view = ACCESS_ROBOTICS
contains = list(/obj/item/mod/core/standard = 3)
crate_name = "\improper MOD core crate"
- crate_type = /obj/structure/closet/crate/secure/science/robo
+ crate_type = /obj/structure/closet/crate/nakamura
diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm
index 05360fe913f0a..1823ef5174f94 100644
--- a/code/modules/cargo/packs/security.dm
+++ b/code/modules/cargo/packs/security.dm
@@ -36,7 +36,7 @@
/datum/supply_pack/security/forensics
name = "Forensics Crate"
desc = "Stay hot on the criminal's heels with Nanotrasen's Detective Essentialsâ„¢. \
- Contains a forensics scanner, six evidence bags, camera, tape recorder, white crayon, \
+ Contains a forensics scanner, six evidence bags, camera, special board for evidences, tape recorder, stick of chalk, \
and of course, a fedora."
cost = CARGO_CRATE_VALUE * 2.5
access_view = ACCESS_MORGUE
@@ -46,6 +46,7 @@
/obj/item/taperecorder,
/obj/item/toy/crayon/white,
/obj/item/clothing/head/fedora/det_hat,
+ /obj/item/wallframe/detectiveboard
)
crate_name = "forensics crate"
diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm
index bf6afe107d6c7..26af45f960a5e 100644
--- a/code/modules/cargo/packs/service.dm
+++ b/code/modules/cargo/packs/service.dm
@@ -245,7 +245,7 @@
/obj/item/food/ready_donk/donkhiladas,
)
crate_name = "\improper Ready-Donk crate"
- crate_type = /obj/structure/closet/crate/freezer/food
+ crate_type = /obj/structure/closet/crate/freezer/donk
discountable = SUPPLY_PACK_UNCOMMON_DISCOUNTABLE
/datum/supply_pack/service/randomized/ready_donk/fill(obj/structure/closet/crate/C)
@@ -269,6 +269,7 @@
/obj/item/reagent_containers/cup/bottle/syrup_bottle/caramel, //one extra syrup as a treat
)
crate_name = "coffee equipment crate"
+ crate_type = /obj/structure/closet/crate/robust
discountable = SUPPLY_PACK_UNCOMMON_DISCOUNTABLE
/datum/supply_pack/service/coffeemaker
diff --git a/code/modules/cargo/packs/vending_restock.dm b/code/modules/cargo/packs/vending_restock.dm
index 10ae874d5d6c9..e5ae6f25c9371 100644
--- a/code/modules/cargo/packs/vending_restock.dm
+++ b/code/modules/cargo/packs/vending_restock.dm
@@ -17,7 +17,14 @@
cost = CARGO_CRATE_VALUE * 2
contains = list(/obj/item/vending_refill/cigarette)
crate_name = "cigarette supply crate"
- crate_type = /obj/structure/closet/crate
+ crate_type = /obj/structure/closet/crate/robust
+
+/datum/supply_pack/vending/science/cytopro
+ name = "Cytology Vendor Supply Crate"
+ desc = "For all your vat-growing needs! Contains a CytoPro machine refill."
+ cost = CARGO_CRATE_VALUE * 3
+ contains = list(/obj/item/vending_refill/cytopro)
+ crate_name = "cytopro supply crate"
/datum/supply_pack/vending/dinnerware
name = "Dinnerware Supply Crate"
@@ -106,6 +113,7 @@
cost = CARGO_CRATE_VALUE * 2
contains = list(/obj/item/vending_refill/snack)
crate_name = "snacks supply crate"
+ crate_type = /obj/structure/closet/crate/robust
/datum/supply_pack/vending/cola
name = "Softdrinks Supply Crate"
diff --git a/code/modules/cargo/universal_scanner.dm b/code/modules/cargo/universal_scanner.dm
index 484f4a7a03201..9ce1771421e61 100644
--- a/code/modules/cargo/universal_scanner.dm
+++ b/code/modules/cargo/universal_scanner.dm
@@ -257,7 +257,7 @@
/obj/item/universal_scanner/proc/check_menu(mob/living/user)
if(!istype(user))
return FALSE
- if(user.incapacitated())
+ if(user.incapacitated)
return FALSE
return TRUE
diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm
index 2b60b3bdbb2e4..c8e9e9a64c270 100644
--- a/code/modules/client/client_defines.dm
+++ b/code/modules/client/client_defines.dm
@@ -45,8 +45,6 @@
var/datum/click_intercept = null
///Time when the click was intercepted
var/click_intercept_time = 0
- ///Used for admin AI interaction
- var/AI_Interact = FALSE
///Used to cache this client's bans to save on DB queries
var/ban_cache = null
diff --git a/code/modules/client/preferences/paraplegic.dm b/code/modules/client/preferences/paraplegic.dm
new file mode 100644
index 0000000000000..1ffa704c77d0b
--- /dev/null
+++ b/code/modules/client/preferences/paraplegic.dm
@@ -0,0 +1,20 @@
+/datum/preference/choiced/paraplegic
+ category = PREFERENCE_CATEGORY_MANUALLY_RENDERED
+ savefile_key = "paraplegic"
+ savefile_identifier = PREFERENCE_CHARACTER
+
+/datum/preference/choiced/paraplegic/init_possible_values()
+ return GLOB.paraplegic_choice
+
+/datum/preference/choiced/paraplegic/create_default_value()
+ return "Default"
+
+/datum/preference/choiced/paraplegic/is_accessible(datum/preferences/preferences)
+ . = ..()
+ if (!.)
+ return FALSE
+
+ return "Paraplegic" in preferences.all_quirks
+
+/datum/preference/choiced/paraplegic/apply_to_human(mob/living/carbon/human/target, value)
+ return
diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm
index baabaa610c523..954724ed520ff 100644
--- a/code/modules/client/verbs/ooc.dm
+++ b/code/modules/client/verbs/ooc.dm
@@ -58,7 +58,7 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
msg = emoji_parse(msg)
- if(SSticker.HasRoundStarted() && (msg[1] in list(".",";",":","#") || findtext_char(msg, "say", 1, 5)))
+ if(SSticker.HasRoundStarted() && ((msg[1] in list(".",";",":","#")) || findtext_char(msg, "say", 1, 5)))
if(tgui_alert(usr,"Your message \"[raw_msg]\" looks like it was meant for in game communication, say it in OOC?", "Meant for OOC?", list("Yes", "No")) != "Yes")
return
diff --git a/code/modules/clothing/chameleon/generic_chameleon_clothing.dm b/code/modules/clothing/chameleon/generic_chameleon_clothing.dm
index 47b6f4db185a5..69800031f73a3 100644
--- a/code/modules/clothing/chameleon/generic_chameleon_clothing.dm
+++ b/code/modules/clothing/chameleon/generic_chameleon_clothing.dm
@@ -107,6 +107,7 @@ do { \
greyscale_colors = null
resistance_flags = NONE
+ body_parts_covered = HANDS|ARMS
armor_type = /datum/armor/gloves_chameleon
actions_types = list(/datum/action/item_action/chameleon/change/gloves)
clothing_traits = list(TRAIT_FAST_CUFFING)
@@ -218,6 +219,7 @@ do { \
desc = "A pair of black shoes."
icon_state = "sneakers"
inhand_icon_state = "sneakers_back"
+ body_parts_covered = FEET|LEGS
greyscale_colors = "#545454#ffffff"
greyscale_config = /datum/greyscale_config/sneakers
greyscale_config_worn = /datum/greyscale_config/sneakers/worn
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 1998b7abc4db3..d4705aee14c43 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -528,7 +528,7 @@ BLIND // can't see anything
update_appearance() //most of the time the sprite changes
/obj/item/clothing/proc/can_use(mob/user)
- return istype(user) && !user.incapacitated()
+ return istype(user) && !user.incapacitated
/obj/item/clothing/proc/spawn_shreds()
new /obj/effect/decal/cleanable/shreds(get_turf(src), name)
diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm
index 5f63e0c3464bf..418f8358f4d2a 100644
--- a/code/modules/clothing/gloves/_gloves.dm
+++ b/code/modules/clothing/gloves/_gloves.dm
@@ -12,6 +12,9 @@
siemens_coefficient = 0.5
body_parts_covered = HANDS
slot_flags = ITEM_SLOT_GLOVES
+ equip_sound = 'sound/items/equip/glove_equip.ogg'
+ drop_sound = 'sound/items/handling/glove_drop.ogg'
+ pickup_sound = 'sound/items/handling/glove_pick_up.ogg'
attack_verb_continuous = list("challenges")
attack_verb_simple = list("challenge")
strip_delay = 20
diff --git a/code/modules/clothing/gloves/punch_mitts.dm b/code/modules/clothing/gloves/punch_mitts.dm
new file mode 100644
index 0000000000000..07d93d5ab021c
--- /dev/null
+++ b/code/modules/clothing/gloves/punch_mitts.dm
@@ -0,0 +1,24 @@
+/obj/item/clothing/gloves/fingerless/punch_mitts
+ name = "punching mitts"
+ desc = "Fingerless gloves with nasty spikes attached. Allows the wearer to utilize the ill-reputed fighting technique known as Hunter Boxing. The style \
+ allows the user to punch wildlife rapidly to death. Supposedly, this is an incredible workout, but few people are insane enough to attempt to \
+ punch every dangerous creature they encounter in the wild to death with their bare hands. Also kinda works against humanoids as well. \
+ Not that you would... right?"
+ icon_state = "punch_mitts"
+ body_parts_covered = HANDS|ARMS
+ resistance_flags = LAVA_PROOF | FIRE_PROOF
+ armor_type = /datum/armor/gloves_mitts
+
+/obj/item/clothing/gloves/fingerless/punch_mitts/Initialize(mapload)
+ . = ..()
+
+ AddComponent(/datum/component/martial_art_giver, /datum/martial_art/boxing/hunter)
+
+/datum/armor/gloves_mitts
+ melee = 25
+ bullet = 5
+ laser = 5
+ energy = 5
+ bomb = 100
+ fire = 100
+ acid = 30
diff --git a/code/modules/clothing/gloves/special.dm b/code/modules/clothing/gloves/special.dm
index d7fb34ae7c7e6..1366a29ac4a6e 100644
--- a/code/modules/clothing/gloves/special.dm
+++ b/code/modules/clothing/gloves/special.dm
@@ -155,3 +155,95 @@
siemens_coefficient = 0.3
clothing_traits = list(TRAIT_QUICKER_CARRY, TRAIT_CHUNKYFINGERS)
clothing_flags = THICKMATERIAL
+
+///A pair of gloves that both allow the user to fish without the need of a held fishing rod and provides athletics experience.
+/obj/item/clothing/gloves/fishing
+ name = "athletic fishing gloves"
+ desc = "A pair of gloves to fish without a fishing rod but your raw athletics strength. It doubles as a good workout device. WARNING: May cause injuries when catching bigger fish."
+ icon_state = "fishing_gloves"
+
+/obj/item/clothing/gloves/fishing/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/profound_fisher, new /obj/item/fishing_rod/mob_fisher/athletic(src))
+
+/obj/item/clothing/gloves/fishing/equipped(mob/user, slot)
+ . = ..()
+ if(slot == ITEM_SLOT_GLOVES)
+ RegisterSignal(user, SIGNAL_ADDTRAIT(TRAIT_ACTIVELY_FISHING), PROC_REF(begin_workout))
+
+/obj/item/clothing/gloves/fishing/dropped(mob/user)
+ UnregisterSignal(user, list(SIGNAL_ADDTRAIT(TRAIT_ACTIVELY_FISHING), SIGNAL_REMOVETRAIT(TRAIT_ACTIVELY_FISHING)))
+ STOP_PROCESSING(SSprocessing, src)
+ return ..()
+
+/obj/item/clothing/gloves/fishing/proc/begin_workout(datum/source)
+ SIGNAL_HANDLER
+ RegisterSignal(source, SIGNAL_REMOVETRAIT(TRAIT_ACTIVELY_FISHING), PROC_REF(stop_workout))
+ if(HAS_TRAIT(source, TRAIT_PROFOUND_FISHER)) //Only begin working out if we're fishing with these gloves and not some other fishing rod..
+ START_PROCESSING(SSprocessing, src)
+
+/obj/item/clothing/gloves/fishing/proc/stop_workout(datum/source)
+ SIGNAL_HANDLER
+ UnregisterSignal(source, SIGNAL_REMOVETRAIT(TRAIT_ACTIVELY_FISHING))
+ STOP_PROCESSING(SSprocessing, src)
+
+/obj/item/clothing/gloves/fishing/process(seconds_per_tick)
+ var/mob/living/wearer = loc
+ var/list/trait_source = GET_TRAIT_SOURCES(wearer, TRAIT_ACTIVELY_FISHING)
+ var/datum/fishing_challenge/challenge = trait_source[1]
+ var/stamina_exhaustion = 2.5 + challenge.difficulty * 0.025
+ var/is_heavy_gravity = wearer.has_gravity() > STANDARD_GRAVITY
+ var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = wearer.get_organ_slot(ORGAN_SLOT_SPINE)
+ if(istype(potential_spine))
+ stamina_exhaustion *= potential_spine.athletics_boost_multiplier
+ if(HAS_TRAIT(wearer, TRAIT_STRENGTH))
+ stamina_exhaustion *= 0.5
+
+ var/experience = 0.3 + challenge.difficulty * 0.003
+ if(is_heavy_gravity)
+ stamina_exhaustion *= 1.5
+ experience *= 2
+
+ wearer.adjustStaminaLoss(stamina_exhaustion)
+ wearer.mind?.adjust_experience(/datum/skill/athletics, experience)
+ wearer.apply_status_effect(/datum/status_effect/exercised)
+
+///The internal fishing rod of the athletic fishing gloves. The more athletic you're, the easier the minigame will be.
+/obj/item/fishing_rod/mob_fisher/athletic
+ icon = /obj/item/clothing/gloves/fishing::icon
+ icon_state = /obj/item/clothing/gloves/fishing::icon_state
+ line = null
+ bait = null
+ ui_description = "The integrated fishing rod of a pair of athletic fishing gloves"
+
+/obj/item/fishing_rod/mob_fisher/athletic/Initialize(mapload)
+ . = ..()
+ RegisterSignal(src, COMSIG_FISHING_ROD_CAUGHT_FISH, PROC_REF(noodling_is_dangerous))
+
+/obj/item/fishing_rod/mob_fisher/athletic/get_fishing_overlays()
+ return list()
+
+/obj/item/fishing_rod/mob_fisher/athletic/hook_hit(atom/atom_hit_by_hook_projectile, mob/user)
+ difficulty_modifier = -3 * user.mind?.get_skill_level(/datum/skill/athletics)
+ return ..()
+
+/obj/item/fishing_rod/mob_fisher/athletic/proc/noodling_is_dangerous(datum/source, atom/movable/reward, mob/living/user)
+ SIGNAL_HANDLER
+ if(!isfish(reward))
+ return
+ var/damage = 0
+ var/obj/item/fish/fishe = reward
+ switch(fishe.w_class)
+ if(WEIGHT_CLASS_BULKY)
+ damage = 10
+ if(WEIGHT_CLASS_HUGE)
+ damage = 14
+ if(WEIGHT_CLASS_GIGANTIC)
+ damage = 18
+ if(!damage && fishe.weight >= 2000)
+ damage = 5
+ damage = round(damage * fishe.weight * 0.0005)
+ if(damage)
+ var/body_zone = pick(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM)
+ user.apply_damage(damage, BRUTE, body_zone, user.run_armor_check(body_zone, MELEE))
+ playsound(src,'sound/weapons/bite.ogg', damage * 2, TRUE)
diff --git a/code/modules/clothing/head/costume.dm b/code/modules/clothing/head/costume.dm
index 13a6e549b0e91..a1cfd37ec0db0 100644
--- a/code/modules/clothing/head/costume.dm
+++ b/code/modules/clothing/head/costume.dm
@@ -87,6 +87,10 @@
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
+/obj/item/clothing/head/costume/lobsterhat/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean"))
+
/obj/item/clothing/head/costume/drfreezehat
name = "doctor freeze's wig"
desc = "A cool wig for cool people."
@@ -115,14 +119,10 @@
/obj/item/clothing/head/costume/cardborg/equipped(mob/living/user, slot)
..()
if(ishuman(user) && (slot & ITEM_SLOT_HEAD))
- var/mob/living/carbon/human/H = user
- if(istype(H.wear_suit, /obj/item/clothing/suit/costume/cardborg))
- var/obj/item/clothing/suit/costume/cardborg/CB = H.wear_suit
- CB.disguise(user, src)
-
-/obj/item/clothing/head/costume/cardborg/dropped(mob/living/user)
- ..()
- user.remove_alt_appearance("standard_borg_disguise")
+ var/mob/living/carbon/human/human_user = user
+ if(istype(human_user.wear_suit, /obj/item/clothing/suit/costume/cardborg))
+ var/obj/item/clothing/suit/costume/cardborg/suit = human_user.wear_suit
+ suit.disguise(user, src)
/obj/item/clothing/head/costume/bronze
name = "bronze hat"
diff --git a/code/modules/clothing/head/fedora.dm b/code/modules/clothing/head/fedora.dm
index e4e8d4b54368d..cf0d23ac37f58 100644
--- a/code/modules/clothing/head/fedora.dm
+++ b/code/modules/clothing/head/fedora.dm
@@ -35,3 +35,9 @@
name = "carpskin fedora"
icon_state = "fedora_carpskin"
inhand_icon_state = null
+
+/obj/item/clothing/head/fedora/beige/press
+ name = "press fedora"
+ desc = "An beige fedora with a piece of paper saying \"PRESS\" stuck in its rim."
+ icon_state = "fedora_press"
+ inhand_icon_state = null
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 76c230ca504d2..2874a27b72b98 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -75,6 +75,16 @@
update_appearance()
return CLICK_ACTION_SUCCESS
+/obj/item/clothing/head/helmet/press
+ name = "press helmet"
+ desc = "A blue helmet used to distinguish non-combatant \"PRESS\" members, like if anyone cares."
+ icon_state = "helmet_press"
+
+/obj/item/clothing/head/helmet/press/worn_overlays(mutable_appearance/standing, isinhands, icon_file)
+ . = ..()
+ if(!isinhands)
+ . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha)
+
/obj/item/clothing/head/helmet/alt
name = "bulletproof helmet"
desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent."
@@ -101,6 +111,7 @@
name = "tactical combat helmet"
desc = "A tactical black helmet, sealed from outside hazards with a plate of glass and not much else."
icon_state = "marine_command"
+ base_icon_state = "marine_command"
inhand_icon_state = "marine_helmet"
armor_type = /datum/armor/helmet_marine
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
@@ -126,14 +137,17 @@
/obj/item/clothing/head/helmet/marine/security
name = "marine heavy helmet"
icon_state = "marine_security"
+ base_icon_state = "marine_security"
/obj/item/clothing/head/helmet/marine/engineer
name = "marine utility helmet"
icon_state = "marine_engineer"
+ base_icon_state = "marine_engineer"
/obj/item/clothing/head/helmet/marine/medic
name = "marine medic helmet"
icon_state = "marine_medic"
+ base_icon_state = "marine_medic"
/obj/item/clothing/head/helmet/marine/pmc
icon_state = "marine"
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index a5041de7fa0a9..5d5fc87d409f4 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -54,7 +54,7 @@
/obj/item/clothing/head/utility/chefhat/proc/on_mouse_emote(mob/living/source, key, emote_message, type_override)
SIGNAL_HANDLER
var/mob/living/carbon/wearer = loc
- if(!wearer || wearer.incapacitated(IGNORE_RESTRAINTS))
+ if(!wearer || INCAPACITATED_IGNORING(wearer, INCAPABLE_RESTRAINTS))
return
if (!prob(mouse_control_probability))
return COMPONENT_CANT_EMOTE
@@ -68,7 +68,7 @@
return COMPONENT_MOVABLE_BLOCK_PRE_MOVE // Didn't roll well enough or on cooldown
var/mob/living/carbon/wearer = loc
- if(!wearer || wearer.incapacitated(IGNORE_RESTRAINTS))
+ if(!wearer || INCAPACITATED_IGNORING(wearer, INCAPABLE_RESTRAINTS))
return COMPONENT_MOVABLE_BLOCK_PRE_MOVE // Not worn or can't move
var/move_direction = get_dir(wearer, moved_to)
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index cb0f9033960c3..f8e7e80532f16 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -33,7 +33,7 @@
/obj/item/clothing/head/soft/proc/flip(mob/user)
- if(!user.incapacitated())
+ if(!user.incapacitated)
flipped = !flipped
if(flipped)
icon_state = "[soft_type][soft_suffix]_flipped"
@@ -173,6 +173,7 @@
/obj/item/clothing/head/soft/fishing_hat/Initialize(mapload)
. = ..()
+ AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean")) //you asked for this.
AddElement(/datum/element/skill_reward, /datum/skill/fishing)
#define PROPHAT_MOOD "prophat"
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index cab7a6557e3c4..c5871d23c1859 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -301,14 +301,14 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0)
/obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user)
- if(!istype(user) || user.incapacitated())
+ if(!istype(user) || user.incapacitated)
return
var/choice = show_radial_menu(user,src, clownmask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
if(!choice)
return FALSE
- if(src && choice && !user.incapacitated() && in_range(user,src))
+ if(src && choice && !user.incapacitated && in_range(user,src))
var/list/options = GLOB.clown_mask_options
icon_state = options[choice]
user.update_worn_mask()
@@ -355,7 +355,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
)
/obj/item/clothing/mask/gas/mime/ui_action_click(mob/user)
- if(!istype(user) || user.incapacitated())
+ if(!istype(user) || user.incapacitated)
return
var/list/options = list()
@@ -368,7 +368,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
if(!choice)
return FALSE
- if(src && choice && !user.incapacitated() && in_range(user,src))
+ if(src && choice && !user.incapacitated && in_range(user,src))
icon_state = options[choice]
user.update_worn_mask()
update_item_action_buttons()
diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm
index 2aa61b0046070..b14573a087cf1 100644
--- a/code/modules/clothing/outfits/ert.dm
+++ b/code/modules/clothing/outfits/ert.dm
@@ -104,6 +104,8 @@
l_pocket = /obj/item/healthanalyzer/advanced
additional_radio = /obj/item/encryptionkey/heads/cmo
+ skillchips = list(/obj/item/skillchip/entrails_reader)
+
/datum/outfit/centcom/ert/medic/alert
name = "ERT Medic - High Alert"
@@ -133,6 +135,9 @@
l_pocket = /obj/item/rcd_ammo/large
additional_radio = /obj/item/encryptionkey/heads/ce
+
+ skillchips = list(/obj/item/skillchip/job/engineer)
+
/datum/outfit/centcom/ert/engineer/alert
name = "ERT Engineer - High Alert"
@@ -520,6 +525,9 @@
glasses = /obj/item/clothing/glasses/hud/health/sunglasses
additional_radio = /obj/item/encryptionkey/heads/cmo
+
+ skillchips = list(/obj/item/skillchip/entrails_reader)
+
/datum/outfit/centcom/ert/marine/engineer
name = "Marine Engineer"
@@ -533,6 +541,8 @@
glasses = /obj/item/clothing/glasses/hud/diagnostic/sunglasses
additional_radio = /obj/item/encryptionkey/heads/ce
+ skillchips = list(/obj/item/skillchip/job/engineer)
+
/datum/outfit/centcom/militia
name = "Militia Man"
@@ -563,3 +573,72 @@
head = /obj/item/clothing/head/beret/militia
l_hand = /obj/item/megaphone
suit_store = /obj/item/gun/energy/laser/musket/prime
+
+/datum/outfit/centcom/ert/medical_commander
+ name = "Chief EMT"
+ id = /obj/item/card/id/advanced/centcom/ert/medical
+ uniform = /obj/item/clothing/under/rank/medical/chief_medical_officer
+ l_pocket = /obj/item/healthanalyzer/advanced
+ shoes = /obj/item/clothing/shoes/sneakers/white
+ backpack_contents = list(
+ /obj/item/reagent_containers/hypospray/combat = 1,
+ /obj/item/storage/medkit/regular = 1,
+ /obj/item/storage/medkit/advanced = 1,
+ /obj/item/melee/baton/telescopic = 1,
+ /obj/item/gun/energy/pulse/pistol/loyalpin = 1,
+ /obj/item/stack/medical/poultice = 1, //These stacks contain 15 by default. Great for getting corpses to defib range without surgery.
+ )
+ belt = /obj/item/storage/belt/medical/ert
+ glasses = /obj/item/clothing/glasses/hud/health/sunglasses
+ additional_radio = /obj/item/encryptionkey/heads/cmo
+ mask = /obj/item/clothing/mask/surgical
+ back = /obj/item/mod/control/pre_equipped/emergency_medical/corpsman
+ gloves = null
+ suit = null
+ head = null
+ suit_store = /obj/item/tank/internals/oxygen
+
+/datum/outfit/centcom/ert/medical_technician
+ name = "EMT Paramedic"
+ id = /obj/item/card/id/advanced/centcom/ert/medical
+ uniform = /obj/item/clothing/under/rank/medical/scrubs/blue
+ l_pocket = /obj/item/healthanalyzer
+ backpack_contents = list(
+ /obj/item/reagent_containers/hypospray/combat = 1,
+ /obj/item/storage/medkit/regular = 1,
+ /obj/item/reagent_containers/syringe = 1,
+ /obj/item/reagent_containers/cup/bottle/formaldehyde = 1,
+ /obj/item/reagent_containers/medigel/sterilizine = 1,
+ /obj/item/bodybag = 2,
+ )
+ mask = /obj/item/clothing/mask/surgical
+ belt = /obj/item/storage/belt/medical/ert
+ glasses = /obj/item/clothing/glasses/hud/health
+ additional_radio = /obj/item/encryptionkey/heads/cmo
+ shoes = /obj/item/clothing/shoes/sneakers/blue
+ back = /obj/item/mod/control/pre_equipped/emergency_medical
+ gloves = null
+ suit = null
+ head = null
+ suit_store = /obj/item/tank/internals/oxygen
+
+/obj/item/mod/control/pre_equipped/emergency_medical
+ theme = /datum/mod_theme/medical
+ starting_frequency = MODLINK_FREQ_CENTCOM
+ applied_cell = /obj/item/stock_parts/power_store/cell/hyper
+ applied_modules = list(
+ /obj/item/mod/module/organizer,
+ /obj/item/mod/module/defibrillator,
+ /obj/item/mod/module/flashlight,
+ /obj/item/mod/module/health_analyzer,
+ /obj/item/mod/module/injector,
+ /obj/item/mod/module/surgical_processor/emergency,
+ /obj/item/mod/module/storage/large_capacity,
+ )
+
+/obj/item/mod/control/pre_equipped/emergency_medical/corpsman
+ theme = /datum/mod_theme/medical/corpsman
+
+///Identical to medical MODsuit, but uses the alternate skin by default.
+/datum/mod_theme/medical/corpsman
+ default_skin = "corpsman"
diff --git a/code/modules/clothing/outfits/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm
index 1b2e0ead14883..a0e927c631938 100644
--- a/code/modules/clothing/outfits/plasmaman.dm
+++ b/code/modules/clothing/outfits/plasmaman.dm
@@ -302,3 +302,15 @@
uniform = /obj/item/clothing/under/plasmaman //same
gloves = /obj/item/clothing/gloves/color/plasmaman/black
head = /obj/item/clothing/head/helmet/space/plasmaman
+
+/datum/outfit/plasmaman/medical_commander
+ name = "Chief EMT Plasmaman"
+ uniform = /obj/item/clothing/under/plasmaman/chief_medical_officer
+ gloves = /obj/item/clothing/gloves/color/plasmaman/white
+ head = /obj/item/clothing/head/helmet/space/plasmaman/chief_medical_officer
+
+/datum/outfit/plasmaman/medical_technician
+ name = "EMT Paramedic Plasmaman"
+ uniform = /obj/item/clothing/under/plasmaman/medical
+ gloves = /obj/item/clothing/gloves/color/plasmaman/white
+ head = /obj/item/clothing/head/helmet/space/plasmaman/medical
diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm
index dbfa4f8b3c40d..03f174aa43c31 100644
--- a/code/modules/clothing/shoes/boots.dm
+++ b/code/modules/clothing/shoes/boots.dm
@@ -3,6 +3,7 @@
desc = "High speed, low drag combat boots."
icon_state = "jackboots"
inhand_icon_state = "jackboots"
+ body_parts_covered = FEET|LEGS
armor_type = /datum/armor/shoes_combat
strip_delay = 40
resistance_flags = NONE
@@ -49,6 +50,7 @@
resistance_flags = NONE
armor_type = /datum/armor/shoes_jackboots
can_be_tied = FALSE
+ body_parts_covered = FEET|LEGS
/datum/armor/shoes_jackboots
bio = 90
@@ -108,6 +110,7 @@
strip_delay = 4 SECONDS
equip_delay_other = 4 SECONDS
clothing_flags = THICKMATERIAL
+ body_parts_covered = FEET|LEGS
resistance_flags = NONE
/datum/armor/ice_boots_eva
@@ -177,6 +180,7 @@
strip_delay = 40
resistance_flags = NONE
lace_time = 12 SECONDS
+ body_parts_covered = FEET|LEGS
/datum/armor/shoes_pirate
melee = 25
diff --git a/code/modules/clothing/shoes/cowboy.dm b/code/modules/clothing/shoes/cowboy.dm
index 4295b91cad2f5..ab8ef30c99b60 100644
--- a/code/modules/clothing/shoes/cowboy.dm
+++ b/code/modules/clothing/shoes/cowboy.dm
@@ -109,3 +109,4 @@
desc = "And they sing, oh, ain't you glad you're single? And that song ain't so very far from wrong."
armor_type = /datum/armor/shoes_combat
has_spurs = TRUE
+ body_parts_covered = FEET|LEGS
diff --git a/code/modules/clothing/shoes/cult.dm b/code/modules/clothing/shoes/cult.dm
index 80d03d3a09e25..f1a856b42688b 100644
--- a/code/modules/clothing/shoes/cult.dm
+++ b/code/modules/clothing/shoes/cult.dm
@@ -1,5 +1,5 @@
/obj/item/clothing/shoes/cult
- name = "\improper Nar'Sien invoker boots"
+ name = "\improper Nar'Sian boots"
desc = "A pair of boots worn by the followers of Nar'Sie."
icon_state = "cult"
inhand_icon_state = null
@@ -10,7 +10,7 @@
lace_time = 10 SECONDS
/obj/item/clothing/shoes/cult/alt
- name = "cultist boots"
+ name = "\improper Nar'Sian invoker boots"
icon_state = "cultalt"
/obj/item/clothing/shoes/cult/alt/ghost
diff --git a/code/modules/clothing/shoes/jumpboots.dm b/code/modules/clothing/shoes/jumpboots.dm
index 3446c2e7c7873..dc9dadcea5a53 100644
--- a/code/modules/clothing/shoes/jumpboots.dm
+++ b/code/modules/clothing/shoes/jumpboots.dm
@@ -36,6 +36,7 @@
user.visible_message(span_warning("[usr] dashes forward into the air!"))
recharging_time = world.time + recharging_rate
else
+ REMOVE_TRAIT(user, TRAIT_MOVE_FLOATING, LEAPING_TRAIT)
to_chat(user, span_warning("Something prevents you from dashing forward!"))
/obj/item/clothing/shoes/bhop/rocket
diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm
index 703000a1f9133..caf84d9562dcb 100644
--- a/code/modules/clothing/spacesuits/_spacesuits.dm
+++ b/code/modules/clothing/spacesuits/_spacesuits.dm
@@ -24,6 +24,7 @@
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
resistance_flags = NONE
dog_fashion = null
+ slowdown = 0.5
/datum/armor/helmet_space
bio = 100
@@ -47,7 +48,7 @@
/obj/item/tank/internals,
/obj/item/tank/jetpack/oxygen/captain,
)
- slowdown = 1
+ slowdown = 0.5
armor_type = /datum/armor/suit_space
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
diff --git a/code/modules/clothing/spacesuits/pirate.dm b/code/modules/clothing/spacesuits/pirate.dm
index ca041d68d036f..73feec525c548 100644
--- a/code/modules/clothing/spacesuits/pirate.dm
+++ b/code/modules/clothing/spacesuits/pirate.dm
@@ -3,6 +3,7 @@
desc = "A modified helmet to allow space pirates to intimidate their customers whilst staying safe from the void. Comes with some additional protection."
icon_state = "spacepirate"
inhand_icon_state = "space_pirate_helmet"
+ slowdown = 0
armor_type = /datum/armor/space_pirate
strip_delay = 40
equip_delay_other = 20
diff --git a/code/modules/clothing/spacesuits/santa.dm b/code/modules/clothing/spacesuits/santa.dm
index 138f52e046e47..f6bd1657606c5 100644
--- a/code/modules/clothing/spacesuits/santa.dm
+++ b/code/modules/clothing/spacesuits/santa.dm
@@ -7,6 +7,7 @@
inhand_icon_state = "santahat"
flags_cover = HEADCOVERSEYES
dog_fashion = /datum/dog_fashion/head/santa
+ slowdown = 0
/obj/item/clothing/head/helmet/space/santahat/beardless
icon = 'icons/obj/clothing/head/costume.dmi'
@@ -14,6 +15,7 @@
icon_state = "santahatnorm"
inhand_icon_state = "that"
flags_inv = NONE
+ slowdown = 0
/obj/item/clothing/suit/space/santa
name = "Santa's suit"
diff --git a/code/modules/clothing/spacesuits/softsuit.dm b/code/modules/clothing/spacesuits/softsuit.dm
index 510c9e7056f2f..0b644286063ec 100644
--- a/code/modules/clothing/spacesuits/softsuit.dm
+++ b/code/modules/clothing/spacesuits/softsuit.dm
@@ -16,13 +16,14 @@
name = "Engineering Void Helmet"
desc = "A CentCom engineering dark red space suit helmet. While old and dusty, it still gets the job done."
icon_state = "void"
+ slowdown = 2
/obj/item/clothing/suit/space/nasavoid/old
name = "Engineering Voidsuit"
icon_state = "void"
inhand_icon_state = "void_suit"
desc = "A CentCom engineering dark red space suit. Age has degraded the suit making it difficult to move around in."
- slowdown = 4
+ slowdown = 2
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool)
//EVA suit
@@ -72,6 +73,7 @@
inhand_icon_state = "syndicate-helm-orange" //resprite?
armor_type = /datum/armor/space_fragile
strip_delay = 65
+ slowdown = 1
/obj/item/clothing/suit/space/fragile
name = "emergency space suit"
@@ -79,7 +81,7 @@
var/torn = FALSE
icon_state = "syndicate-orange"
inhand_icon_state = "syndicate-orange"
- slowdown = 2
+ slowdown = 1
armor_type = /datum/armor/space_fragile
strip_delay = 65
diff --git a/code/modules/clothing/spacesuits/specialops.dm b/code/modules/clothing/spacesuits/specialops.dm
index cf8fc2a475cc6..caaa32cc24be2 100644
--- a/code/modules/clothing/spacesuits/specialops.dm
+++ b/code/modules/clothing/spacesuits/specialops.dm
@@ -7,6 +7,7 @@
inhand_icon_state = null
greyscale_colors = "#397F3F#FFCE5B"
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT
+ slowdown = 0
flags_inv = 0
armor_type = /datum/armor/space_beret
strip_delay = 130
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 3c7fa506b208d..6e56107173c46 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -59,6 +59,16 @@
/obj/item/clothing/suit/armor/vest/alt/sec
icon_state = "armor_sec"
+/obj/item/clothing/suit/armor/vest/press
+ name = "press armor vest"
+ desc = "A blue armor vest used to distinguish non-combatant \"PRESS\" members, like if anyone cares."
+ icon_state = "armor_press"
+
+/obj/item/clothing/suit/armor/vest/press/worn_overlays(mutable_appearance/standing, isinhands, icon_file)
+ . = ..()
+ if(!isinhands)
+ . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha)
+
/obj/item/clothing/suit/armor/vest/marine
name = "tactical armor vest"
desc = "A set of the finest mass produced, stamped plasteel armor plates, containing an environmental protection unit for all-condition door kicking."
diff --git a/code/modules/clothing/suits/costume.dm b/code/modules/clothing/suits/costume.dm
index 929e8d931d5ca..566ca5557f728 100644
--- a/code/modules/clothing/suits/costume.dm
+++ b/code/modules/clothing/suits/costume.dm
@@ -168,6 +168,7 @@
body_parts_covered = CHEST|GROIN|LEGS
flags_inv = HIDEJUMPSUIT
dog_fashion = /datum/dog_fashion/back
+ var/in_use = FALSE
/obj/item/clothing/suit/costume/cardborg/equipped(mob/living/user, slot)
..()
@@ -176,17 +177,33 @@
/obj/item/clothing/suit/costume/cardborg/dropped(mob/living/user)
..()
+ if (!in_use)
+ return
user.remove_alt_appearance("standard_borg_disguise")
-
-/obj/item/clothing/suit/costume/cardborg/proc/disguise(mob/living/carbon/human/H, obj/item/clothing/head/costume/cardborg/borghead)
- if(istype(H))
- if(!borghead)
- borghead = H.head
- if(istype(borghead, /obj/item/clothing/head/costume/cardborg)) //why is this done this way? because equipped() is called BEFORE THE ITEM IS IN THE SLOT WHYYYY
- var/image/I = image(icon = 'icons/mob/silicon/robots.dmi' , icon_state = "robot", loc = H)
- I.override = 1
- I.add_overlay(mutable_appearance('icons/mob/silicon/robots.dmi', "robot_e")) //gotta look realistic
- add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "standard_borg_disguise", I) //you look like a robot to robots! (including yourself because you're totally a robot)
+ in_use = FALSE
+ var/mob/living/carbon/human/human_user = user
+ if (istype(human_user.head, /obj/item/clothing/head/costume/cardborg))
+ UnregisterSignal(human_user.head, COMSIG_ITEM_DROPPED)
+
+/obj/item/clothing/suit/costume/cardborg/proc/disguise(mob/living/carbon/human/human_user, obj/item/clothing/head/costume/cardborg/borghead)
+ if(!istype(human_user))
+ return
+ if(!borghead)
+ borghead = human_user.head
+ if(!istype(borghead, /obj/item/clothing/head/costume/cardborg)) //why is this done this way? because equipped() is called BEFORE THE ITEM IS IN THE SLOT WHYYYY
+ return
+ RegisterSignal(borghead, COMSIG_ITEM_DROPPED, PROC_REF(helmet_drop)) // Don't need to worry about qdeleting since dropped will be called from there
+ in_use = TRUE
+ var/image/override_image = image(icon = 'icons/mob/silicon/robots.dmi' , icon_state = "robot", loc = human_user)
+ override_image.override = TRUE
+ override_image.add_overlay(mutable_appearance('icons/mob/silicon/robots.dmi', "robot_e")) //gotta look realistic
+ add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "standard_borg_disguise", override_image) //you look like a robot to robots! (including yourself because you're totally a robot)
+
+/obj/item/clothing/suit/costume/cardborg/proc/helmet_drop(datum/source, mob/living/user)
+ SIGNAL_HANDLER
+ UnregisterSignal(source, COMSIG_ITEM_DROPPED)
+ user.remove_alt_appearance("standard_borg_disguise")
+ in_use = FALSE
/obj/item/clothing/suit/costume/snowman
name = "snowman outfit"
@@ -511,6 +528,14 @@
name = "bronze suit"
desc = "A big and clanky suit made of bronze that offers no protection and looks very unfashionable. Nice."
icon_state = "clockwork_cuirass_old"
+ allowed = list(
+ /obj/item/tank/internals/emergency_oxygen,
+ /obj/item/tank/internals/plasmaman,
+ /obj/item/tank/jetpack/oxygen/captain,
+ /obj/item/storage/belt/holster,
+ //new
+ /obj/item/toy/clockwork_watch,
+ )
armor_type = /datum/armor/costume_bronze
/obj/item/clothing/suit/hooded/mysticrobe
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index d211b3cc91edf..7e6bdde01cdfd 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -191,6 +191,11 @@
if(!isinhands)
. += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha)
+/obj/item/clothing/suit/hazardvest/press // Variant used by the Curator
+ name = "press hazard vest"
+ desc = "A blue high-visibility vest used to distinguish non-combatant \"PRESS\" members, like if anyone cares."
+ icon_state = "hazard_press"
+
//Lawyer
/obj/item/clothing/suit/toggle/lawyer
name = "blue formal suit jacket"
@@ -225,6 +230,10 @@
blood_overlay_type = "coat"
body_parts_covered = CHEST|ARMS
allowed = list(
+ /obj/item/tank/internals/emergency_oxygen,
+ /obj/item/tank/internals/plasmaman,
+ /obj/item/boxcutter,
+ /obj/item/dest_tagger,
/obj/item/stamp,
/obj/item/storage/bag/mail,
/obj/item/universal_scanner,
diff --git a/code/modules/clothing/under/accessories/_accessories.dm b/code/modules/clothing/under/accessories/_accessories.dm
index 91854bc386bf0..5b25418838ab6 100644
--- a/code/modules/clothing/under/accessories/_accessories.dm
+++ b/code/modules/clothing/under/accessories/_accessories.dm
@@ -89,7 +89,7 @@
atom_storage.close_all()
attach_to.clone_storage(atom_storage)
attach_to.atom_storage.set_real_location(src)
- attach_to.atom_storage.rustle_sound = TRUE // it's on the suit now
+ attach_to.atom_storage.do_rustle = TRUE // it's on the suit now
var/num_other_accessories = LAZYLEN(attach_to.attached_accessories)
layer = FLOAT_LAYER + clamp(attach_to.max_number_of_accessories - num_other_accessories, 0, 10)
diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/under/accessories/badges.dm
index 0ea3922893a76..cc66e9d406a57 100644
--- a/code/modules/clothing/under/accessories/badges.dm
+++ b/code/modules/clothing/under/accessories/badges.dm
@@ -241,3 +241,46 @@
if (ishuman(user))
var/mob/living/carbon/human/human_wearer = user
human_wearer.sec_hud_set_security_status()
+
+/obj/item/clothing/accessory/press_badge
+ name = "press badge"
+ desc = "A blue press badge that clearly identifies the wearer as a member of the media. While it signifies press affiliation, it does not grant any special privileges or rights no matter how much the wearer yells about it."
+ desc_controls = "Click person with it to show them it"
+ icon_state = "press_badge"
+ attachment_slot = NONE // actually NECK but that doesn't make sense
+ /// The name of the person in the badge
+ var/journalist_name
+ /// The name of the press person is working for
+ var/press_name
+
+/obj/item/clothing/accessory/press_badge/examine(mob/user)
+ . = ..()
+ if(!journalist_name || !press_name)
+ . += span_notice("Use it in hand to input information")
+ return
+
+ . += span_notice("It belongs to [journalist_name], [press_name]")
+
+/obj/item/clothing/accessory/press_badge/attack_self(mob/user, modifiers)
+ . = ..()
+ if(!journalist_name)
+ journalist_name = tgui_input_text(user, "What is your name?", "Journalist Name", "[user.name]", MAX_NAME_LEN)
+ if(!press_name)
+ press_name = tgui_input_text(user, "For what organization you work?", "Press Name", "Nanotrasen", MAX_CHARTER_LEN)
+
+/obj/item/clothing/accessory/press_badge/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
+ . = ..()
+ if(!isliving(interacting_with))
+ return
+
+ var/mob/living/interacting_living = interacting_with
+ if(user.combat_mode)
+ playsound(interacting_living, 'sound/weapons/throw.ogg', 30)
+ examine(interacting_living)
+ to_chat(interacting_living, span_userdanger("[user] shoves the [src] up your face!"))
+ user.visible_message(span_warning("[user] have shoved a [src] into [interacting_living] face."))
+ else
+ playsound(interacting_living, 'sound/weapons/throwsoft.ogg', 20)
+ examine(interacting_living)
+ to_chat(interacting_living, span_boldwarning("[user] shows the [src] to you."))
+ user.visible_message(span_notice("[user] shows a [src] to [interacting_living]."))
diff --git a/code/modules/deathmatch/deathmatch_controller.dm b/code/modules/deathmatch/deathmatch_controller.dm
index 0b098871624dc..de5132198881a 100644
--- a/code/modules/deathmatch/deathmatch_controller.dm
+++ b/code/modules/deathmatch/deathmatch_controller.dm
@@ -54,7 +54,7 @@
var/datum/deathmatch_lobby/lobby = lobbies[ckey]
if (user.ckey == ckey)
.["hosting"] = TRUE
- if (user.ckey in lobby.observers+lobby.players)
+ if (user.ckey in (lobby.observers+lobby.players))
.["playing"] = ckey
.["lobbies"] += list(list(
name = ckey,
@@ -67,7 +67,7 @@
/datum/deathmatch_controller/proc/find_lobby_by_user(ckey)
for(var/lobbykey in lobbies)
var/datum/deathmatch_lobby/lobby = lobbies[lobbykey]
- if(ckey in lobby.players+lobby.observers)
+ if(ckey in (lobby.players+lobby.observers))
return lobby
/datum/deathmatch_controller/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
diff --git a/code/modules/deathmatch/deathmatch_loadouts.dm b/code/modules/deathmatch/deathmatch_loadouts.dm
index 911e5bf6e1b15..d89fdd383c80f 100644
--- a/code/modules/deathmatch/deathmatch_loadouts.dm
+++ b/code/modules/deathmatch/deathmatch_loadouts.dm
@@ -8,7 +8,9 @@
/// If defined, using this outfit sets the targets species to it
var/datum/species/species_override
/// This outfit will grant these spells if applied
- var/list/granted_spells = list()
+ var/list/spells_to_add = list()
+ /// This outfit will grant these mutations if applied
+ var/list/mutations_to_add = list()
/datum/outfit/deathmatch_loadout/pre_equip(mob/living/carbon/human/user, visualsOnly = FALSE)
. = ..()
@@ -17,15 +19,20 @@
if(!isnull(species_override))
user.set_species(species_override)
+
else if (!isnull(user.dna.species.outfit_important_for_life)) //plasmamen get lit on fire and die
user.set_species(/datum/species/human)
- for(var/datum/action/act as anything in granted_spells)
+
+ for(var/datum/action/act as anything in spells_to_add)
var/datum/action/new_ability = new act(user)
if(istype(new_ability, /datum/action/cooldown/spell))
var/datum/action/cooldown/spell/new_spell = new_ability
- new_spell.spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC
+ new_spell.spell_requirements = NONE
new_ability.Grant(user)
+ for(var/mutation in mutations_to_add)
+ user.dna.add_mutation(mutation)
+
/datum/outfit/deathmatch_loadout/naked
name = "Deathmatch: Naked"
display_name = "Unarmed, Butt-naked"
@@ -349,7 +356,7 @@
suit = /obj/item/clothing/suit/hooded/explorer
shoes = /obj/item/clothing/shoes/workboots/mining
mask = /obj/item/clothing/mask/gas/explorer
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/mob_cooldown/dash,
)
@@ -392,10 +399,10 @@
suit = /datum/outfit/wizard::suit
head = /datum/outfit/wizard::head
shoes = /datum/outfit/wizard::shoes
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/aoe/magic_missile,
/datum/action/cooldown/spell/forcewall,
- /datum/action/cooldown/spell/jaunt/ethereal_jaunt,
+ /datum/action/cooldown/spell/pointed/projectile/fireball,
)
/datum/outfit/deathmatch_loadout/wizard/pyro
@@ -406,7 +413,7 @@
suit = /obj/item/clothing/suit/wizrobe/red
head = /obj/item/clothing/head/wizard/red
mask = /obj/item/cigarette
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/pointed/projectile/fireball,
/datum/action/cooldown/spell/smoke,
)
@@ -418,7 +425,7 @@
suit = /obj/item/clothing/suit/wizrobe/magusred
head = /obj/item/clothing/head/wizard/magus
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/pointed/projectile/lightningbolt,
/datum/action/cooldown/spell/charged/beam/tesla,
)
@@ -431,7 +438,7 @@
species_override = /datum/species/skeleton
suit = /obj/item/clothing/suit/wizrobe/black
head = /obj/item/clothing/head/wizard/black
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/touch/scream_for_me,
/datum/action/cooldown/spell/teleport/radius_turf/blink,
)
@@ -445,7 +452,7 @@
suit = /obj/item/clothing/suit/wizrobe/fake
head = /obj/item/clothing/head/wizard/fake
shoes = /obj/item/clothing/shoes/sandal
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/conjure_item/spellpacket,
/datum/action/cooldown/spell/aoe/repulse/wizard,
)
@@ -459,7 +466,7 @@
suit = /obj/item/clothing/suit/wizrobe/marisa
head = /obj/item/clothing/head/wizard/marisa
shoes = /obj/item/clothing/shoes/sneakers/marisa
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/chuuni_invocations,
/datum/action/cooldown/spell/pointed/projectile/spell_cards,
)
@@ -472,7 +479,7 @@
l_hand = /obj/item/mjollnir
suit = /obj/item/clothing/suit/wizrobe/magusblue
head = /obj/item/clothing/head/wizard/magus
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/summonitem,
)
@@ -482,7 +489,7 @@
desc = "You feel severely under-leveled for this encounter..."
l_hand = null
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/charge,
)
@@ -495,7 +502,7 @@
suit = /obj/item/clothing/suit/wizrobe/tape
head = /obj/item/clothing/head/wizard/tape
shoes = /obj/item/clothing/shoes/jackboots
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/conjure_item/infinite_guns/gun,
/datum/action/cooldown/spell/aoe/knock,
)
@@ -510,7 +517,7 @@
suit = /obj/item/clothing/suit/costume/hawaiian
head = /obj/item/clothing/head/wizard/red
shoes = /obj/item/clothing/shoes/sneakers/marisa
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/rod_form,
/datum/action/cooldown/spell/conjure/the_traps,
)
@@ -527,7 +534,7 @@
mask = /obj/item/clothing/mask/gas/clown_hat
back = /obj/item/storage/backpack/clown
shoes = /obj/item/clothing/shoes/clown_shoes
- granted_spells = null
+ spells_to_add = null
/datum/outfit/deathmatch_loadout/wizard/monkey
name = "Deathmatch: Monkey"
@@ -540,7 +547,7 @@
suit = null
head = /obj/item/clothing/head/wizard
shoes = null
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/conjure/simian,
)
@@ -716,7 +723,7 @@
/obj/item/food/croissant/throwing = 2,
)
- granted_spells = list(
+ spells_to_add = list(
/datum/action/cooldown/spell/vow_of_silence,
/datum/action/cooldown/spell/conjure_item/invisible_box,
/datum/action/cooldown/spell/conjure/invisible_chair,
@@ -744,3 +751,414 @@
/obj/item/knife/butcher,
/obj/item/sharpener,
)
+
+//species
+
+/datum/outfit/deathmatch_loadout/humanity
+ name = "Deathmatch: Human Species"
+ display_name = "Humanity"
+ desc = "The most ambitious and successful species. Or just the most rapacious, depending on who you ask."
+ species_override = /datum/species/human
+
+ head = /obj/item/clothing/head/soft/black
+ glasses = /obj/item/clothing/glasses/sunglasses
+ ears = /obj/item/radio/headset/headset_com
+ neck = /obj/item/clothing/neck/large_scarf/blue
+ //suit
+ id_trim = /datum/id_trim/job/bridge_assistant // half tider half command
+ id = /obj/item/card/id/advanced/chameleon
+ uniform = /obj/item/clothing/under/trek/command/next
+ l_pocket = /obj/item/gun/energy/e_gun/mini
+ r_pocket = /obj/item/extinguisher/mini
+ gloves = /obj/item/clothing/gloves/fingerless
+ belt = /obj/item/storage/belt/utility/full/inducer
+ shoes = /obj/item/clothing/shoes/sneakers/black
+
+// Lizard: Desert, Soldier, Trash
+
+/datum/outfit/deathmatch_loadout/lizardkind
+ name = "Deathmatch: Lizard Species"
+ display_name = "Lizardfolk"
+ desc = "They may be heavily discrimated against, they may be most often seen doing menial activities, but at least they, uh, uhh..."
+ species_override = /datum/species/lizard
+
+ head = /obj/item/clothing/head/soft/purple
+ id_trim = /datum/id_trim/job/janitor
+ id = /obj/item/card/id/advanced/chameleon
+ uniform = /obj/item/clothing/under/rank/civilian/janitor
+ gloves = /obj/item/clothing/gloves/color/black
+ belt = /obj/item/storage/belt/janitor/full
+ shoes = /obj/item/clothing/shoes/chameleon/noslip
+ r_hand = /obj/item/mop/advanced
+ back = /obj/item/storage/backpack
+ backpack_contents = list(
+ /obj/item/toy/plush/lizard_plushie/green,
+ // reclaiming lizard racism
+ /obj/item/reagent_containers/cup/glass/bottle/lizardwine,
+ /obj/item/tailclub,
+ /obj/item/melee/chainofcommand/tailwhip,
+ /obj/item/reagent_containers/cup/glass/coffee
+ )
+
+/datum/outfit/deathmatch_loadout/mothman
+ name = "Deathmatch: Moth Species"
+ display_name = "Mothmen"
+ desc = "An innocent and fluffy visage hides the combat ability of a particularly hairy kitten."
+ species_override = /datum/species/moth
+
+ head = /obj/item/clothing/head/utility/head_mirror
+ glasses = /obj/item/clothing/glasses/hud/health
+ suit = /obj/item/clothing/suit/hooded/wintercoat/medical
+ suit_store = /obj/item/flashlight/pen/paramedic
+ id_trim = /datum/id_trim/job/medical_doctor
+ id = /obj/item/card/id/advanced/chameleon
+ uniform = /obj/item/clothing/under/rank/medical/scrubs/blue
+ belt = /obj/item/storage/belt/medical/paramedic
+ shoes = /obj/item/clothing/shoes/sneakers/white
+ l_hand = /obj/item/circular_saw
+
+ back = /obj/item/storage/backpack/medic
+
+ backpack_contents = list(
+ /obj/item/toy/plush/moth,
+ /obj/item/storage/medkit/brute,
+ /obj/item/storage/medkit/fire,
+ /obj/item/statuebust/hippocratic
+ )
+
+// Roboticist??
+/datum/outfit/deathmatch_loadout/ethereal
+ name = "Deathmatch: Ethereal Species"
+ display_name = "Etherealkind"
+ desc = "Prepare to be SHOCKED as you are reminded of this species's existence."
+ species_override = /datum/species/ethereal
+
+ head = /obj/item/clothing/head/soft/black
+ id_trim = /datum/id_trim/job/roboticist
+ id = /obj/item/card/id/advanced/chameleon
+ suit = /obj/item/clothing/suit/toggle/labcoat/roboticist
+ suit_store = /datum/id_trim/job/roboticist
+ uniform = /obj/item/clothing/under/rank/rnd/roboticist
+ l_pocket = /obj/item/assembly/flash
+ belt = /obj/item/storage/belt/utility/full
+ shoes = /obj/item/clothing/shoes/sneakers/black
+
+ back = /obj/item/storage/backpack/science
+
+ backpack_contents = list(
+ /obj/item/dnainjector/shock,
+ /obj/item/etherealballdeployer,
+ )
+
+/datum/outfit/deathmatch_loadout/plasmamen
+ name = "Deathmatch: Plasmaman Species"
+ display_name = "Plasmamen"
+ desc = "Burn baby burn!"
+ species_override = /datum/species/plasmaman
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/atmospherics
+ suit = /obj/item/clothing/suit/hazardvest
+ suit_store = /obj/item/flashlight
+ uniform = /obj/item/clothing/under/plasmaman/atmospherics
+ id_trim = /datum/id_trim/job/atmospheric_technician
+ id = /obj/item/card/id/advanced/chameleon
+ belt = /obj/item/storage/belt/utility/atmostech
+ gloves = /obj/item/clothing/gloves/color/plasmaman/atmos
+ shoes = /obj/item/clothing/shoes/workboots
+ r_pocket = /obj/item/tank/internals/plasmaman/belt/full
+
+ back = /obj/item/storage/backpack/industrial
+
+ backpack_contents = list(
+ /obj/item/toy/plush/plasmamanplushie,
+ /obj/item/tank/internals/plasma,
+ /obj/item/tank/internals/plasmaman,
+ /obj/item/stack/sheet/mineral/uranium/half,
+ /obj/item/stack/sheet/mineral/plasma/thirty,
+ /obj/item/reagent_containers/condiment/milk,
+ /obj/item/storage/medkit/fire,
+ /obj/item/reagent_containers/syringe/plasma
+ )
+
+/datum/outfit/deathmatch_loadout/felinid
+ name = "Deathmatch: Felinid Species"
+ display_name = "Felinids"
+ desc = "Strictly inferior to humans in every way."
+ species_override = /datum/species/human/felinid
+
+ head = /obj/item/clothing/head/soft/rainbow
+ glasses = null
+ ears = /obj/item/radio/headset
+ neck = /obj/item/clothing/neck/petcollar
+ //suit
+ uniform = /obj/item/clothing/under/color/rainbow
+ l_pocket = /obj/item/toy/cattoy
+ r_pocket = /obj/item/restraints/handcuffs/fake
+ gloves = /obj/item/clothing/gloves/color/rainbow
+ belt = /obj/item/melee/curator_whip
+ shoes = /obj/item/clothing/shoes/sneakers/rainbow
+
+//spleef
+
+/datum/outfit/deathmatch_loadout/lattice_battles
+ name = "Deathmatch: Lattice loadout"
+ display_name = "Lattice Battler"
+ desc = "Snip the catwalks under everyone else and win! You're pacifist, so no punching."
+
+ uniform = /obj/item/clothing/under/pants/jeans
+ suit = /obj/item/clothing/suit/costume/wellworn_shirt/graphic
+ back = /obj/item/storage/backpack
+ r_hand = /obj/item/wirecutters
+
+ backpack_contents = list(
+ /obj/item/stack/rods/fifty,
+ /obj/item/stack/rods/fifty,
+ /obj/item/stack/rods/fifty,
+ /obj/item/stack/rods/fifty,
+ )
+
+// We don't want them to just punch each other to death
+
+/datum/outfit/deathmatch_loadout/lattice_battles/pre_equip(mob/living/carbon/human/user, visualsOnly)
+ . = ..()
+ ADD_TRAIT(user, TRAIT_PACIFISM, REF(src))
+
+// Ragnarok: Fight between religions!
+
+/datum/outfit/deathmatch_loadout/cultish/pre_equip(mob/living/carbon/human/user, visualsOnly)
+ . = ..()
+ ADD_TRAIT(user, TRAIT_ACT_AS_CULTIST, REF(src))
+ user.AddElement(/datum/element/cult_halo, initial_delay = 0 SECONDS)
+ user.AddElement(/datum/element/cult_eyes, initial_delay = 0 SECONDS)
+
+// Cultist Invoker, has all the balanced cult gear
+
+/datum/outfit/deathmatch_loadout/cultish/invoker
+ name = "Deathmatch: Cultist Invoker"
+ display_name = "Cultist Invoker"
+ desc = "Prove Nar'sie's superiority with your well-balanced set of equipment."
+ //species_override = /datum/species/plasmaman
+
+ head = /obj/item/clothing/head/hooded/cult_hoodie/cult_shield
+ glasses = /obj/item/clothing/glasses/hud/health/night/cultblind
+ suit = /obj/item/clothing/suit/hooded/cultrobes/cult_shield // the dreaded return!
+ suit_store = /obj/item/melee/cultblade
+ uniform = /obj/item/clothing/under/color/black
+ id_trim = null
+ belt = /obj/item/melee/cultblade/dagger
+ l_pocket = /obj/item/flashlight/flare/culttorch
+ r_pocket = /obj/item/flashlight/flare/culttorch
+ gloves = /obj/item/clothing/gloves/color/black
+ shoes = /obj/item/clothing/shoes/cult/alt
+ l_hand = /obj/item/shield/mirror // the dreaded return!!
+
+ back = /obj/item/storage/backpack/cultpack
+
+ backpack_contents = list(
+ /obj/item/restraints/legcuffs/bola/cult,
+ /obj/item/reagent_containers/cup/beaker/unholywater,
+ )
+
+// Cultist Artificer, gets all the balanced cult magicks
+
+/datum/outfit/deathmatch_loadout/cultish/artificer
+ name = "Deathmatch: Cultist Artificer"
+ display_name = "Cultist Artificer"
+ desc = "Prove Nar'sie's superiority with your well-balanced blood magicks."
+ //species_override = /datum/species/plasmaman
+
+ head = /obj/item/clothing/head/hooded/cult_hoodie/berserkerhood
+ neck = /obj/item/clothing/neck/heretic_focus/crimson_medallion
+ suit = /obj/item/clothing/suit/hooded/cultrobes/berserker
+ suit_store = /obj/item/melee/sickly_blade/cursed
+ uniform = /obj/item/clothing/under/color/red
+ id_trim = null
+ belt = /obj/item/melee/cultblade/dagger
+ l_pocket = /obj/item/flashlight/flare/culttorch
+ r_pocket = /obj/item/flashlight/flare/culttorch
+ gloves = /obj/item/clothing/gloves/color/red
+ shoes = /obj/item/clothing/shoes/cult
+ l_hand = null
+
+ back = /obj/item/storage/backpack/cultpack
+
+ backpack_contents = list(
+ /obj/item/cult_shift,
+ /obj/item/reagent_containers/cup/beaker/unholywater,
+ /obj/item/reagent_containers/cup/beaker/unholywater,
+ /obj/item/reagent_containers/cup/beaker/unholywater,
+ )
+
+ spells_to_add = list(
+ /datum/action/innate/cult/blood_spell/horror,
+ /datum/action/innate/cult/blood_spell/horror,
+ /datum/action/innate/cult/blood_spell/stun,
+ /datum/action/innate/cult/blood_spell/stun,
+ /datum/action/innate/cult/blood_spell/manipulation,
+ )
+
+/datum/outfit/deathmatch_loadout/cultish/artificer/post_equip(mob/living/carbon/human/user, visualsOnly)
+ . = ..()
+ var/datum/action/innate/cult/blood_spell/manipulation/magick = locate() in user
+ magick.charges = 300
+
+/datum/outfit/deathmatch_loadout/heresy
+ /// Grants the effects of these knowledges to the DMer
+ var/list/knowledge_to_grant
+
+/datum/outfit/deathmatch_loadout/heresy/pre_equip(mob/living/carbon/human/user, visualsOnly)
+ . = ..()
+ ADD_TRAIT(user, TRAIT_ACT_AS_HERETIC, REF(src))
+ user.AddElement(/datum/element/leeching_walk)
+
+ // Creates the knowledge as an isolated datum inside the target, allowing passive knowledges to work still.
+ for(var/datum/heretic_knowledge/knowhow as anything in knowledge_to_grant)
+ knowhow = new knowhow(user)
+ knowhow.on_gain(user, null)
+
+// Heretic Warrior
+
+// Has spells of Ash, Blade, and Rust. Overall aggressive
+
+/datum/outfit/deathmatch_loadout/heresy/warrior
+ name = "Deathmatch: Heretic Warrior"
+ display_name = "Heretic Warrior"
+ desc = "Prove the furious strength of the Mansus."
+ //species_override = /datum/species/plasmaman
+
+ head = /obj/item/clothing/head/hooded/cult_hoodie/eldritch
+ neck = /obj/item/clothing/neck/heretic_focus
+ suit = /obj/item/clothing/suit/hooded/cultrobes/eldritch
+ suit_store = /obj/item/melee/sickly_blade/dark
+ uniform = /obj/item/clothing/under/color/darkgreen
+ id_trim = null
+ belt = /obj/item/melee/sickly_blade/ash
+ gloves = null
+ shoes = /obj/item/clothing/shoes/sandal
+ l_pocket = /obj/item/flashlight/lantern/jade/on
+ r_pocket = /obj/item/melee/rune_carver
+ l_hand = null
+
+ back = /obj/item/storage/backpack
+
+ backpack_contents = list(
+ /obj/item/reagent_containers/cup/beaker/eldritch,
+ /obj/item/reagent_containers/cup/beaker/eldritch,
+ /obj/item/eldritch_potion/wounded,
+ /obj/item/eldritch_potion/wounded,
+ )
+
+ // I mean is it really that bad if they don't even know half this stuff is added to them.
+ // It's like, forbidden knowledge. It fits with the mansus theme - great excuse for poor design!
+ knowledge_to_grant = list(
+ /datum/heretic_knowledge/duel_stance,
+ /datum/heretic_knowledge/blade_grasp,
+ /datum/heretic_knowledge/blade_dance,
+ /datum/heretic_knowledge/blade_upgrade/blade,
+ )
+
+ spells_to_add = list(
+ /datum/action/cooldown/spell/touch/mansus_grasp,
+ /datum/action/cooldown/spell/realignment,
+ /datum/action/cooldown/spell/pointed/projectile/furious_steel,
+ /datum/action/cooldown/spell/charged/beam/fire_blast,
+ /datum/action/cooldown/spell/aoe/fiery_rebirth,
+ /datum/action/cooldown/spell/cone/staggered/entropic_plume,
+ /datum/action/cooldown/spell/pointed/rust_construction,
+ )
+
+// Heretic Scribe
+
+// Has spells of Void, Moon, and Cosmos. Overall defensive/mobile
+
+/datum/outfit/deathmatch_loadout/heresy/scribe
+ name = "Deathmatch: Heretic Scribe"
+ display_name = "Heretic Scribe"
+ desc = "Reveal the forgotten knowledge of the Mansus."
+
+ head = /obj/item/clothing/head/helmet/chaplain/witchunter_hat
+ mask = /obj/item/clothing/mask/madness_mask
+ neck = /obj/item/clothing/neck/eldritch_amulet
+ suit = /obj/item/clothing/suit/hooded/cultrobes/void
+ suit_store = /obj/item/melee/sickly_blade
+ uniform = /obj/item/clothing/under/costume/gamberson/military
+ id_trim = null
+ belt = /obj/item/storage/belt/unfathomable_curio
+ gloves = null
+ shoes = /obj/item/clothing/shoes/winterboots/ice_boots
+ l_pocket = /obj/item/ammo_box/strilka310/lionhunter
+ r_pocket = /obj/item/codex_cicatrix
+
+ back = /obj/item/gun/ballistic/rifle/lionhunter // for his neutral b, he wields a gun
+
+ belt_contents = list(
+ /obj/item/heretic_labyrinth_handbook,
+ /obj/item/heretic_labyrinth_handbook,
+ /obj/item/eldritch_potion/crucible_soul,
+ /obj/item/clothing/neck/heretic_focus/moon_amulet = 3,
+ )
+
+ knowledge_to_grant = list(
+ /datum/heretic_knowledge/cosmic_grasp,
+ /datum/heretic_knowledge/moon_grasp,
+ /datum/heretic_knowledge/mark/moon_mark,
+ )
+
+ spells_to_add = list(
+ /datum/action/cooldown/spell/touch/mansus_grasp,
+ /datum/action/cooldown/spell/conjure/cosmic_expansion,
+ /datum/action/cooldown/spell/pointed/projectile/star_blast,
+ /datum/action/cooldown/spell/touch/star_touch,
+ /datum/action/cooldown/spell/cone/staggered/cone_of_cold/void,
+ /datum/action/cooldown/spell/aoe/void_pull,
+ )
+
+// Chaplain! No spells (other than smoke), but strong armor and weapons, and immune to others' spells
+
+/datum/outfit/deathmatch_loadout/holy_crusader
+ name = "Deathmatch: Holy Crusader"
+ display_name = "Holy Crusader"
+ desc = "Smite the heathens!!"
+ //species_override = /datum/species/plasmaman
+
+ head = /obj/item/clothing/head/helmet/chaplain
+ neck = /obj/item/camera/spooky
+ suit = /obj/item/clothing/suit/chaplainsuit/armor/templar
+ suit_store = /obj/item/book/bible/booze
+ uniform = /obj/item/clothing/under/rank/civilian/chaplain
+ id_trim = null
+ belt = /obj/item/nullrod // choose any!
+ gloves = /obj/item/clothing/gloves/plate
+ shoes = /obj/item/clothing/shoes/plate
+ l_pocket = /obj/item/flashlight/lantern/on
+ r_pocket = /obj/item/reagent_containers/cup/glass/bottle/holywater
+ l_hand = /obj/item/shield/buckler
+
+ back = /obj/item/claymore/weak // or don't
+
+ spells_to_add = list(
+ /datum/action/cooldown/spell/smoke/lesser
+ )
+ mutations_to_add = list(
+ /datum/mutation/human/medieval,
+ /datum/mutation/human/lay_on_hands, // useless, but fun
+ )
+
+// Rat'var Apostate
+
+/datum/outfit/deathmatch_loadout/clock_cult
+ name = "Deathmatch: Clock Cultist"
+ display_name = "Rat'var Apostate"
+ desc = "You're in a fight between the servants of gods, and yours is dead. Good luck?"
+ //species_override = /datum/species/plasmaman
+
+ head = /obj/item/clothing/head/costume/bronze
+ suit = /obj/item/clothing/suit/costume/bronze
+ suit_store = /obj/item/toy/clockwork_watch
+ uniform = /obj/item/clothing/under/chameleon
+ id_trim = null
+ belt = /obj/item/brass_spear
+ gloves = /obj/item/clothing/gloves/tinkerer
+ shoes = /obj/item/clothing/shoes/bronze
+ l_pocket = /obj/item/reagent_containers/cup/beaker/synthflesh // they used to turn their dmg into tox with a spell. close enough
+ r_pocket = /obj/item/reagent_containers/cup/beaker/synthflesh
diff --git a/code/modules/deathmatch/deathmatch_lobby.dm b/code/modules/deathmatch/deathmatch_lobby.dm
index ffc41c887162d..76c8eb5561c08 100644
--- a/code/modules/deathmatch/deathmatch_lobby.dm
+++ b/code/modules/deathmatch/deathmatch_lobby.dm
@@ -285,7 +285,7 @@
/datum/deathmatch_lobby/proc/join(mob/player)
if (playing || !player)
return
- if(!(player.ckey in players+observers))
+ if(!(player.ckey in (players+observers)))
if (players.len >= map.max_players)
add_observer(player)
else
diff --git a/code/modules/deathmatch/deathmatch_mapping.dm b/code/modules/deathmatch/deathmatch_mapping.dm
index 9f006e1524295..b83419490be76 100644
--- a/code/modules/deathmatch/deathmatch_mapping.dm
+++ b/code/modules/deathmatch/deathmatch_mapping.dm
@@ -11,9 +11,6 @@
/obj/effect/landmark/deathmatch_player_spawn
name = "Deathmatch Player Spawner"
-/area/deathmatch/teleport //Prevent access to cross-z teleportation in the map itself (no wands of safety/teleportation scrolls). Cordons should prevent same-z teleportations outside of the arena.
- area_flags = /area/deathmatch::area_flags & ~NOTELEPORT
-
// for the illusion of a moving train
/turf/open/chasm/true/no_smooth/fake_motion_sand
name = "air"
@@ -25,3 +22,12 @@
/turf/open/chasm/true/no_smooth/fake_motion_sand/fast
icon_state = "sandmovingfast"
base_icon_state = "sandmovingfast"
+
+// fakeout
+
+/turf/open/chasm/true/fakeout
+ name = /turf/open/floor/wood::name
+ // desc kept the same
+ icon_state = /turf/open/floor/wood::icon_state
+ base_icon_state = /turf/open/floor/wood::base_icon_state
+ icon = /turf/open/floor/wood::icon
diff --git a/code/modules/deathmatch/deathmatch_maps.dm b/code/modules/deathmatch/deathmatch_maps.dm
index 6a8a245abb795..da08ae0b3114c 100644
--- a/code/modules/deathmatch/deathmatch_maps.dm
+++ b/code/modules/deathmatch/deathmatch_maps.dm
@@ -1,6 +1,7 @@
-/datum/lazy_template/deathmatch //deathmatch maps that have any possibility of the walls being destroyed should use indestructible walls, because baseturf moment
+/datum/lazy_template/deathmatch
map_dir = "_maps/deathmatch"
place_on_top = TRUE
+ turf_reservation_type = /datum/turf_reservation/turf_not_baseturf
/// Map UI Name
var/name
/// Map Description
@@ -16,7 +17,6 @@
/// whether we are currently being loaded by a lobby
var/template_in_use = FALSE
-
/datum/lazy_template/deathmatch/ragecage
name = "Ragecage"
desc = "Fun for the whole family, the classic ragecage."
@@ -204,5 +204,45 @@
map_name = "finaldestination"
key = "finaldestination"
+/datum/lazy_template/deathmatch/species_warfare
+ name = "Species Warfare"
+ desc = "Choose your favorite species and prove its superiority against all the other, lamer species. And also anyone else of your own."
+ max_players = 8
+ allowed_loadouts = list(
+ /datum/outfit/deathmatch_loadout/humanity,
+ /datum/outfit/deathmatch_loadout/lizardkind,
+ /datum/outfit/deathmatch_loadout/mothman,
+ /datum/outfit/deathmatch_loadout/ethereal,
+ /datum/outfit/deathmatch_loadout/plasmamen,
+ /datum/outfit/deathmatch_loadout/felinid,
+ )
+ map_name = "species_warfare"
+ key = "species_warfare"
+
+/datum/lazy_template/deathmatch/lattice_battles
+ name = "Lattice Battles"
+ desc = "Tired of fisticuffs all the time? Just snip the catwalk underneath instead!"
+ max_players = 8
+ allowed_loadouts = list(
+ /datum/outfit/deathmatch_loadout/lattice_battles,
+ )
+ map_name = "lattice_battles"
+ key = "lattice_battles"
+
+/datum/lazy_template/deathmatch/ragnarok
+ name = "Ragnarok"
+ desc = "Cultists, heretics, and chaplains all duking it out in the jungle to retrieve the McGuffin."
+ max_players = 8
+ allowed_loadouts = list(
+ /datum/outfit/deathmatch_loadout/cultish/invoker,
+ /datum/outfit/deathmatch_loadout/cultish/artificer,
+ /datum/outfit/deathmatch_loadout/heresy/warrior,
+ /datum/outfit/deathmatch_loadout/heresy/scribe,
+ /datum/outfit/deathmatch_loadout/holy_crusader,
+ /datum/outfit/deathmatch_loadout/clock_cult,
+ )
+ map_name = "ragnarok"
+ key = "ragnarok"
+
/datum/turf_reservation/indestructible_plating
turf_type = /turf/open/indestructible/plating //a little hacky but i guess it has to be done
diff --git a/code/modules/deathmatch/deathmatch_modifier.dm b/code/modules/deathmatch/deathmatch_modifier.dm
index dadca49d70a4f..9faafa91a48b7 100644
--- a/code/modules/deathmatch/deathmatch_modifier.dm
+++ b/code/modules/deathmatch/deathmatch_modifier.dm
@@ -232,7 +232,7 @@
projectile.ricochets_max += 2
projectile.min_ricochets += 2
projectile.ricochet_incidence_leeway = 0
- ADD_TRAIT(projectile, TRAIT_ALWAYS_HIT_ZONE, DEATHMATCH_TRAIT)
+ projectile.accuracy_falloff = 0
/datum/deathmatch_modifier/stormtrooper
name = "Stormtrooper Aim"
diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm
index 0acb0ad9781a7..875b8c0dcf23a 100644
--- a/code/modules/events/aurora_caelus.dm
+++ b/code/modules/events/aurora_caelus.dm
@@ -17,10 +17,12 @@
start_when = 21
end_when = 80
-/datum/round_event/aurora_caelus/announce()
+/datum/round_event/aurora_caelus/announce(fake)
priority_announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull. Nanotrasen has approved a short break for all employees to relax and observe this very rare event. During this time, starlight will be bright but gentle, shifting between quiet green and blue colors. Any staff who would like to view these lights for themselves may proceed to the area nearest to them with viewing ports to open space. We hope you enjoy the lights.",
sound = 'sound/misc/notice2.ogg',
sender_override = "Nanotrasen Meteorology Division")
+ if (fake)
+ return
for(var/V in GLOB.player_list)
var/mob/M = V
if((M.client.prefs.read_preference(/datum/preference/toggle/sound_midi)) && is_station_level(M.z))
@@ -31,6 +33,8 @@
/datum/round_event/aurora_caelus/start()
if(!prob(1) && !check_holidays(APRIL_FOOLS))
return
+
+ var/list/human_blacklist = list()
for(var/area/station/service/kitchen/affected_area in GLOB.areas)
var/obj/machinery/oven/roast_ruiner = locate() in affected_area
if(roast_ruiner)
@@ -40,10 +44,13 @@
message_admins("Aurora Caelus event caused an oven to ignite at [ADMIN_VERBOSEJMP(ruined_roast)].")
log_game("Aurora Caelus event caused an oven to ignite at [loc_name(ruined_roast)].")
announce_to_ghosts(roast_ruiner)
- for(var/mob/living/carbon/human/seymour as anything in GLOB.human_list)
- if(seymour.mind && istype(seymour.mind.assigned_role, /datum/job/cook))
- seymour.say("My roast is ruined!!!", forced = "ruined roast")
- seymour.emote("scream")
+ for(var/mob/living/carbon/human/seymour in viewers(roast_ruiner, 7))
+ if (seymour in human_blacklist)
+ continue
+ human_blacklist += seymour
+ if(seymour.mind && istype(seymour.mind.assigned_role, /datum/job/cook))
+ seymour.say("My roast is ruined!!!", forced = "ruined roast")
+ seymour.emote("scream")
/datum/round_event/aurora_caelus/tick()
if(activeFor % 8 != 0)
diff --git a/code/modules/events/ghost_role/sentience.dm b/code/modules/events/ghost_role/sentience.dm
index 4017361dba51a..092813008458a 100644
--- a/code/modules/events/ghost_role/sentience.dm
+++ b/code/modules/events/ghost_role/sentience.dm
@@ -3,6 +3,7 @@ GLOBAL_LIST_INIT(high_priority_sentience, typecacheof(list(
/mob/living/basic/butterfly,
/mob/living/basic/carp/pet/cayenne,
/mob/living/basic/chicken,
+ /mob/living/basic/crab,
/mob/living/basic/cow,
/mob/living/basic/goat,
/mob/living/basic/lizard,
@@ -18,6 +19,7 @@ GLOBAL_LIST_INIT(high_priority_sentience, typecacheof(list(
/mob/living/simple_animal/bot/secbot/beepsky,
/mob/living/simple_animal/hostile/retaliate/goose/vomit,
/mob/living/basic/bear/snow/misha,
+ /mob/living/basic/mining/lobstrosity/juvenile,
)))
/datum/round_event_control/sentience
diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm
index 686adf1e5d3f6..9c9d81d01d73f 100644
--- a/code/modules/events/ion_storm.dm
+++ b/code/modules/events/ion_storm.dm
@@ -34,7 +34,7 @@
//AI laws
for(var/mob/living/silicon/ai/M in GLOB.alive_mob_list)
M.laws_sanity_check()
- if(M.stat != DEAD && !M.incapacitated())
+ if(M.stat != DEAD && !M.incapacitated)
if(prob(replaceLawsetChance))
var/datum/ai_laws/ion_lawset = pick_weighted_lawset()
// pick_weighted_lawset gives us a typepath,
diff --git a/code/modules/events/space_vines/vine_event.dm b/code/modules/events/space_vines/vine_event.dm
index c4c805b1667e2..ce9881c990797 100644
--- a/code/modules/events/space_vines/vine_event.dm
+++ b/code/modules/events/space_vines/vine_event.dm
@@ -39,7 +39,7 @@
for(var/area/station/hallway/area in GLOB.areas)
for(var/turf/open/floor in area.get_turfs_from_all_zlevels())
- if(floor.Enter(vine))
+ if(!isopenspaceturf(floor) && floor.Enter(vine))
turfs += floor
qdel(vine)
@@ -64,7 +64,7 @@
/datum/event_admin_setup/set_location/spacevine/apply_to_event(datum/round_event/spacevine/event)
event.override_turf = chosen_turf
-
+
/datum/event_admin_setup/multiple_choice/spacevine
input_text = "Select starting mutations."
min_choices = 0
@@ -88,7 +88,7 @@
type_choices += text2path(choice)
event.mutations_overridden = TRUE
event.override_mutations = type_choices
-
+
/datum/event_admin_setup/input_number/spacevine_potency
input_text = "Set vine's potency (effects mutation frequency + max severity)"
max_value = 100
diff --git a/code/modules/experisci/experiment/handlers/experiment_handler.dm b/code/modules/experisci/experiment/handlers/experiment_handler.dm
index 622d84551a285..bb0cc2fb0a5e3 100644
--- a/code/modules/experisci/experiment/handlers/experiment_handler.dm
+++ b/code/modules/experisci/experiment/handlers/experiment_handler.dm
@@ -355,7 +355,7 @@
)
.["experiments"] += list(data)
-/datum/component/experiment_handler/ui_act(action, params)
+/datum/component/experiment_handler/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/explorer_drone/control_console.dm b/code/modules/explorer_drone/control_console.dm
index 8cc8854f27dc8..78451dd71a168 100644
--- a/code/modules/explorer_drone/control_console.dm
+++ b/code/modules/explorer_drone/control_console.dm
@@ -97,7 +97,7 @@
icon_screen = initial(icon_screen)
. = ..()
-/obj/machinery/computer/exodrone_control_console/ui_act(action, list/params)
+/obj/machinery/computer/exodrone_control_console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/explorer_drone/exodrone.dm b/code/modules/explorer_drone/exodrone.dm
index 5754ccc4a5e18..8ba0f64b4a6f6 100644
--- a/code/modules/explorer_drone/exodrone.dm
+++ b/code/modules/explorer_drone/exodrone.dm
@@ -63,12 +63,15 @@ GLOBAL_LIST_EMPTY(exodrone_launchers)
/obj/item/exodrone/Initialize(mapload)
. = ..()
- name = pick(strings(EXODRONE_FILE,"probe_names"))
- if(name_counter[name])
- name_counter[name]++
- name = "[name] \Roman[name_counter[name]]"
+ if(name == /obj/item/exodrone::name)
+ name = pick(strings(EXODRONE_FILE,"probe_names"))
+ if(name_counter[name])
+ name_counter[name]++
+ name = "[name] \Roman[name_counter[name]]"
+ else
+ name_counter[name] = 1
else
- name_counter[name] = 1
+ name = name
GLOB.exodrones += src
// Cargo storage
create_storage(max_slots = EXODRONE_CARGO_SLOTS, canthold = GLOB.blacklisted_cargo_types)
diff --git a/code/modules/explorer_drone/scanner_array.dm b/code/modules/explorer_drone/scanner_array.dm
index 6317ee273bed4..0cbeb684a8c6e 100644
--- a/code/modules/explorer_drone/scanner_array.dm
+++ b/code/modules/explorer_drone/scanner_array.dm
@@ -121,7 +121,7 @@ GLOBAL_LIST_INIT(scan_conditions,init_scan_conditions())
. = ..()
.["all_bands"] = GLOB.exoscanner_bands
-/obj/machinery/computer/exoscanner_control/ui_act(action, list/params)
+/obj/machinery/computer/exoscanner_control/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/fishing/admin.dm b/code/modules/fishing/admin.dm
index ba5c29a7fd172..f4643201a7788 100644
--- a/code/modules/fishing/admin.dm
+++ b/code/modules/fishing/admin.dm
@@ -51,7 +51,7 @@ ADMIN_VERB(fishing_calculator, R_DEBUG, "Fishing Calculator", "A calculator... f
temporary_rod.set_slot(new line_type(temporary_rod), ROD_SLOT_LINE)
var/result_table = list()
- var/modified_table = spot.get_modified_fish_table(temporary_rod,user)
+ var/modified_table = spot.get_modified_fish_table(temporary_rod, user, null)
for(var/result_type in spot.fish_table) // through this not modified to display 0 chance ones too
var/list/info = list()
info["result"] = result_type
diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm
index 5afbf4b72d9a9..0d2cd462128d4 100644
--- a/code/modules/fishing/aquarium/aquarium.dm
+++ b/code/modules/fishing/aquarium/aquarium.dm
@@ -307,14 +307,30 @@
/obj/structure/aquarium/ui_data(mob/user)
. = ..()
- .["fluid_type"] = fluid_type
+ .["fluidType"] = fluid_type
.["temperature"] = fluid_temp
- .["allow_breeding"] = allow_breeding
- .["feeding_interval"] = feeding_interval / (1 MINUTES)
- var/list/content_data = list()
- for(var/atom/movable/fish in contents)
- content_data += list(list("name"=fish.name,"ref"=ref(fish)))
- .["contents"] = content_data
+ .["allowBreeding"] = allow_breeding
+ .["fishData"] = list()
+ .["feedingInterval"] = feeding_interval / (1 MINUTES)
+ .["propData"] = list()
+ for(var/atom/movable/item in contents)
+ if(isfish(item))
+ var/obj/item/fish/fish = item
+ .["fishData"] += list(list(
+ "fish_ref" = REF(fish),
+ "fish_name" = fish.name,
+ "fish_happiness" = fish.get_happiness_value(),
+ "fish_icon" = fish::icon,
+ "fish_icon_state" = fish::icon_state,
+ "fish_health" = fish.health,
+ ))
+ continue
+ .["propData"] += list(list(
+ "prop_ref" = REF(item),
+ "prop_name" = item.name,
+ "prop_icon" = item::icon,
+ "prop_icon_state" = item::icon_state,
+ ))
/obj/structure/aquarium/ui_static_data(mob/user)
. = ..()
@@ -322,8 +338,9 @@
.["minTemperature"] = min_fluid_temp
.["maxTemperature"] = max_fluid_temp
.["fluidTypes"] = fluid_types
+ .["heartIcon"] = 'icons/effects/effects.dmi'
-/obj/structure/aquarium/ui_act(action, params)
+/obj/structure/aquarium/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -345,14 +362,19 @@
if("feeding_interval")
feeding_interval = params["feeding_interval"] MINUTES
. = TRUE
- if("remove")
- var/atom/movable/inside = locate(params["ref"]) in contents
- if(inside)
- if(isitem(inside))
- user.put_in_hands(inside)
- else
- inside.forceMove(get_turf(src))
- to_chat(user,span_notice("You take out [inside] from [src]."))
+ if("pet_fish")
+ var/obj/item/fish/fish = locate(params["fish_reference"]) in contents
+ fish?.pet_fish(user)
+ if("remove_item")
+ var/atom/movable/item = locate(params["item_reference"]) in contents
+ item?.forceMove(drop_location())
+ to_chat(user, span_notice("You take out [item] from [src]."))
+ if("rename_fish")
+ var/new_name = sanitize_name(params["chosen_name"])
+ if(!new_name)
+ return
+ var/atom/movable/fish = locate(params["fish_reference"]) in contents
+ fish.name = new_name
/obj/structure/aquarium/ui_interact(mob/user, datum/tgui/ui)
. = ..()
@@ -399,9 +421,13 @@
new /obj/item/aquarium_prop/sand(src)
new /obj/item/aquarium_prop/seaweed(src)
- new /obj/item/fish/goldfish/gill(src)
+ if(prob(85))
+ new /obj/item/fish/goldfish/gill(src)
+ reagents.add_reagent(/datum/reagent/consumable/nutriment, 2)
+ else
+ new /obj/item/fish/goldfish/three_eyes/gill(src)
+ reagents.add_reagent(/datum/reagent/toxin/mutagen, 2) //three eyes goldfish feed on mutagen.
- reagents.add_reagent(/datum/reagent/consumable/nutriment, 2)
/obj/structure/aquarium/prefilled
anchored = TRUE
diff --git a/code/modules/fishing/aquarium/aquarium_kit.dm b/code/modules/fishing/aquarium/aquarium_kit.dm
index 1161648f7d15f..3257760f6a439 100644
--- a/code/modules/fishing/aquarium/aquarium_kit.dm
+++ b/code/modules/fishing/aquarium/aquarium_kit.dm
@@ -21,15 +21,15 @@
desc = "A resizable case keeping the fish inside in stasis."
icon = 'icons/obj/storage/case.dmi'
icon_state = "fishbox"
-
+ w_class = WEIGHT_CLASS_SMALL
inhand_icon_state = "syringe_kit"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
- storage_type = /datum/storage/fish_case
+ storage_type = /datum/storage/fish_case/adjust_size
/obj/item/storage/fish_case/Initialize(mapload)
- ADD_TRAIT(src, TRAIT_FISH_SAFE_STORAGE, TRAIT_GENERIC) // Before populate so fish instatiates in ready container already
- return ..()
+ . = ..()
+ AddElement(/datum/element/fish_safe_storage)
/obj/item/storage/fish_case/PopulateContents()
var/fish_type = get_fish_type()
@@ -58,7 +58,7 @@
name = "ominous fish case"
/obj/item/storage/fish_case/syndicate/get_fish_type()
- return pick(/obj/item/fish/donkfish, /obj/item/fish/emulsijack, /obj/item/fish/jumpercable)
+ return pick(/obj/item/fish/donkfish, /obj/item/fish/emulsijack, /obj/item/fish/jumpercable, /obj/item/fish/chainsawfish)
/obj/item/storage/fish_case/tiziran
name = "imported fish case"
@@ -91,6 +91,13 @@
for(var/obj/item/fish/fish as anything in contents)
fish.set_status(FISH_DEAD)
+/obj/item/storage/fish_case/bluespace
+ name = "bluespace fish case"
+ icon_state = "fishbox_bluespace"
+ desc = "An improved fish case to keep large fish in stasis in a compact little space."
+ w_class = WEIGHT_CLASS_NORMAL
+ storage_type = /datum/storage/fish_case
+
/obj/item/aquarium_kit
name = "DIY Aquarium Construction Kit"
desc = "Everything you need to build your own aquarium. Raw materials sold separately."
@@ -109,6 +116,7 @@
icon = 'icons/obj/aquarium/supplies.dmi'
w_class = WEIGHT_CLASS_TINY
+ custom_materials = list(/datum/material/plastic = COIN_MATERIAL_AMOUNT)
var/layer_mode = AQUARIUM_LAYER_MODE_BOTTOM
var/beauty = 150
@@ -117,32 +125,37 @@
AddComponent(/datum/component/aquarium_content, icon, beauty = beauty)
/obj/item/aquarium_prop/rocks
- name = "rocks"
+ name = "decorative rocks"
+ desc = "A bunch of tiny plastic rocks for decorating an aquarium. Surely you could have just used real pebbles?"
icon_state = "rocks"
-/obj/item/aquarium_prop/seaweed_top
- name = "dense seaweeds"
- icon_state = "seaweeds_front"
- layer_mode = AQUARIUM_LAYER_MODE_TOP
-
/obj/item/aquarium_prop/seaweed
- name = "seaweeds"
+ name = "fake seaweed"
+ desc = "Little plastic sheets with weighted bottoms, designed to look like underwater foliage. They can be used to spruce up an aquarium."
icon_state = "seaweeds_back"
layer_mode = AQUARIUM_LAYER_MODE_BOTTOM
+/obj/item/aquarium_prop/seaweed/top
+ desc = "A bunch of artificial plants for an aquarium."
+ icon_state = "seaweeds_front"
+ layer_mode = AQUARIUM_LAYER_MODE_TOP
+
/obj/item/aquarium_prop/sand
name = "aquarium sand"
+ desc = "A plastic board for lining the bottom of an aquarium. It's got a bumpy patterned surface vaguely reminiscent of yellow sand."
icon_state = "sand"
layer_mode = AQUARIUM_LAYER_MODE_BEHIND_GLASS
/obj/item/aquarium_prop/treasure
name = "tiny treasure chest"
+ desc = "A very small plastic treaure chest, with nothing inside. You could put this in an aquarium, and it'll look like very small pirates hid treasure in there. Wouldn't that be nice?"
icon_state = "treasure"
layer_mode = AQUARIUM_LAYER_MODE_BOTTOM
/obj/item/storage/box/aquarium_props
name = "aquarium props box"
desc = "All you need to make your aquarium look good."
+ illustration = "fish"
/obj/item/storage/box/aquarium_props/PopulateContents()
for(var/prop_type in subtypesof(/obj/item/aquarium_prop))
diff --git a/code/modules/fishing/aquarium/fish_analyzer.dm b/code/modules/fishing/aquarium/fish_analyzer.dm
index f59f1901b8563..3d01479ef5a2f 100644
--- a/code/modules/fishing/aquarium/fish_analyzer.dm
+++ b/code/modules/fishing/aquarium/fish_analyzer.dm
@@ -65,6 +65,7 @@
if(isfish(target) || istype(target, /obj/structure/aquarium))
scanned_item = WEAKREF(target)
+ SEND_SIGNAL(src, COMSIG_FISH_ANALYZER_ANALYZE_STATUS, target, user)
ui_interact(user)
return ITEM_INTERACT_SUCCESS
diff --git a/code/modules/fishing/bait.dm b/code/modules/fishing/bait.dm
index b67298fab9fea..8fb66ad4c3d22 100644
--- a/code/modules/fishing/bait.dm
+++ b/code/modules/fishing/bait.dm
@@ -3,13 +3,16 @@
desc = "there's a lot of them in there, getting them out takes a while though"
icon = 'icons/obj/fishing.dmi'
icon_state = "bait_can"
+ base_icon_state = "bait_can"
w_class = WEIGHT_CLASS_SMALL
/// Tracking until we can take out another bait item
COOLDOWN_DECLARE(bait_removal_cooldown)
/// What bait item it produces
- var/bait_type
+ var/obj/item/bait_type = /obj/item/food/bait
/// Time between bait retrievals
- var/cooldown_time = 10 SECONDS
+ var/cooldown_time = 5 SECONDS
+ /// How many uses does it have left.
+ var/uses_left = 20
/obj/item/bait_can/attack_self(mob/user, modifiers)
. = ..()
@@ -17,19 +20,280 @@
if(fresh_bait)
user.put_in_hands(fresh_bait)
+/obj/item/bait_can/examine(mob/user)
+ . = ..()
+ . += span_info("It[uses_left ? " has got [uses_left] [bait_type::name] left" : "'s empty"].")
+
+/obj/item/bait_can/update_icon_state()
+ . = ..()
+ icon_state = base_icon_state
+ if(uses_left <= initial(uses_left))
+ if(!uses_left)
+ icon_state = "[icon_state]_empty"
+ else
+ icon_state = "[icon_state]_open"
+
/obj/item/bait_can/proc/retrieve_bait(mob/user)
+ if(!uses_left)
+ user.balloon_alert(user, "empty")
+ return
if(!COOLDOWN_FINISHED(src, bait_removal_cooldown))
- user.balloon_alert(user, "wait a bit") //I can't think of generic ic reason.
+ user.balloon_alert(user, "wait a bit")
return
COOLDOWN_START(src, bait_removal_cooldown, cooldown_time)
+ update_appearance()
+ uses_left--
return new bait_type(src)
/obj/item/bait_can/worm
name = "can o' worm"
- desc = "this can got worms."
+ desc = "This can got worms."
bait_type = /obj/item/food/bait/worm
/obj/item/bait_can/worm/premium
name = "can o' worm deluxe"
- desc = "this can got fancy worms."
+ desc = "This can got fancy worms."
bait_type = /obj/item/food/bait/worm/premium
+
+/obj/item/bait_can/super_baits
+ name = "can o' super-baits"
+ desc = "This can got the nectar of god."
+ bait_type = /obj/item/food/bait/doughball/synthetic/super
+ uses_left = 12
+
+/obj/item/fishing_lure
+ name = "artificial minnow"
+ desc = "A fishing lure meant to attract smaller omnivore fish."
+ icon = 'icons/obj/fishing.dmi'
+ icon_state = "minnow"
+ w_class = WEIGHT_CLASS_SMALL
+ /**
+ * A list with two keys delimiting the spinning interval in which a mouse click has to be pressed while fishing.
+ * This is passed down to the fishing rod, and then to the lure during the minigame.
+ */
+ var/spin_frequency = list(2 SECONDS, 3 SECONDS)
+
+/obj/item/fishing_lure/Initialize(mapload)
+ . = ..()
+ add_traits(list(TRAIT_FISHING_BAIT, TRAIT_BAIT_ALLOW_FISHING_DUD, TRAIT_OMNI_BAIT, TRAIT_BAIT_UNCONSUMABLE), INNATE_TRAIT)
+ RegisterSignal(src, COMSIG_FISHING_EQUIPMENT_SLOTTED, PROC_REF(lure_equipped))
+
+/obj/item/fishing_lure/proc/lure_equipped(datum/source, obj/item/fishing_rod/rod)
+ SIGNAL_HANDLER
+ rod.spin_frequency = spin_frequency
+ RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(on_removed))
+
+/obj/item/fishing_lure/proc/on_removed(atom/movable/source, obj/item/fishing_rod/rod, dir, forced)
+ SIGNAL_HANDLER
+ UnregisterSignal(src, COMSIG_MOVABLE_MOVED)
+ rod.spin_frequency = null
+
+///Called for every fish subtype by the fishing subsystem when initializing, to populate the list of fish that can be catched with this lure.
+/obj/item/fishing_lure/proc/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/avg_size = initial(fish_type.average_size)
+ var/intermediate_size = FISH_SIZE_SMALL_MAX + (FISH_SIZE_NORMAL_MAX - FISH_SIZE_SMALL_MAX)
+ if(!ISINRANGE(avg_size, FISH_SIZE_TINY_MAX * 0.5, intermediate_size))
+ return FALSE
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(length(list(/datum/fish_trait/vegan, /datum/fish_trait/picky_eater, /datum/fish_trait/nocturnal, /datum/fish_trait/heavy) & fish_traits))
+ return FALSE
+ return TRUE
+
+/obj/item/fishing_lure/examine(mob/user)
+ . = ..()
+ . += span_info("It has to be spun with a frequency of [spin_frequency[1] * 0.1] to [spin_frequency[2] * 0.1] seconds while fishing.")
+ if(HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISHING_SPOT))
+ . += span_tinynotice("Thanks to your experience, you can examine it again to get a list of fish you can catch with it.")
+
+/obj/item/fishing_lure/examine_more(mob/user)
+ . = ..()
+ if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISHING_SPOT))
+ return
+
+ var/list/known_fishes = list()
+ for(var/obj/item/fish/fish_type as anything in SSfishing.lure_catchables[type])
+ if(initial(fish_type.show_in_catalog))
+ known_fishes += initial(fish_type.name)
+
+ if(!length(known_fishes))
+ return
+
+ . += span_info("You can catch the following fish with this lure: [english_list(known_fishes)].")
+
+///Check if the fish is in the list of catchable fish for this fishing lure. Return value is a multiplier.
+/obj/item/fishing_lure/check_bait(obj/item/fish/fish_type)
+ var/multiplier = 0
+ if(is_type_in_list(/obj/item/fishing_lure, SSfishing.fish_properties[fish_type][FISH_PROPERTIES_FAV_BAIT]))
+ multiplier += 2
+ if(fish_type in SSfishing.lure_catchables[type])
+ multiplier += 10
+ return multiplier
+
+/obj/item/fishing_lure/plug
+ name = "big plug lure"
+ desc = "A fishing lure used to catch larger omnivore fish."
+ icon_state = "plug"
+
+/obj/item/fishing_lure/plug/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/avg_size = initial(fish_type.average_size)
+ if(avg_size <= FISH_SIZE_SMALL_MAX)
+ return FALSE
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(length(list(/datum/fish_trait/vegan, /datum/fish_trait/picky_eater, /datum/fish_trait/nocturnal, /datum/fish_trait/heavy) & fish_traits))
+ return FALSE
+ return TRUE
+
+/obj/item/fishing_lure/dropping
+ name = "plastic dropping"
+ desc = "A fishing lure to catch all sort of slimy, ratty, disgusting and/or junk-loving fish."
+ icon_state = "dropping"
+ spin_frequency = list(1.5 SECONDS, 2.5 SECONDS)
+
+/obj/item/fishing_lure/dropping/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/list/sources = list(/datum/fish_source/toilet, /datum/fish_source/moisture_trap)
+ for(var/datum/fish_source/source as anything in sources)
+ var/datum/fish_source/instance = GLOB.preset_fish_sources[/datum/fish_source/toilet]
+ if(fish_type in instance.fish_table)
+ return TRUE
+ var/list/fav_baits = fish_properties[FISH_PROPERTIES_FAV_BAIT]
+ for(var/list/identifier in fav_baits)
+ if(identifier[FISH_BAIT_TYPE] == FISH_BAIT_FOODTYPE && (identifier[FISH_BAIT_VALUE] & (JUNKFOOD|GROSS|TOXIC)))
+ return TRUE
+ if(initial(fish_type.beauty) <= FISH_BEAUTY_DISGUSTING)
+ return TRUE
+ return FALSE
+
+/obj/item/fishing_lure/spoon
+ name = "\improper Indy spoon lure"
+ desc = "A lustrous piece of metal mimicking the scales of a fish. Good for catching small to medium freshwater omnivore fish."
+ icon_state = "spoon"
+ spin_frequency = list(1.25 SECONDS, 2.1 SECONDS)
+
+/obj/item/fishing_lure/spoon/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/avg_size = initial(fish_type.average_size)
+ if(!ISINRANGE(avg_size, FISH_SIZE_TINY_MAX + 1, FISH_SIZE_NORMAL_MAX))
+ return FALSE
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(length(list(/datum/fish_trait/vegan, /datum/fish_trait/picky_eater, /datum/fish_trait/nocturnal, /datum/fish_trait/heavy) & fish_traits))
+ return FALSE
+ var/fluid_type = initial(fish_type.required_fluid_type)
+ if(fluid_type == AQUARIUM_FLUID_FRESHWATER || fluid_type == AQUARIUM_FLUID_ANADROMOUS || fluid_type == AQUARIUM_FLUID_ANY_WATER)
+ return TRUE
+ if((/datum/fish_trait/amphibious in fish_traits) && fluid_type == AQUARIUM_FLUID_AIR)
+ return TRUE
+ return FALSE
+
+/obj/item/fishing_lure/artificial_fly
+ name = "\improper Silkbuzz artificial fly"
+ desc = "A fishing lure resembling a large wooly fly. Good for catching all sort of picky fish."
+ icon_state = "artificial_fly"
+ spin_frequency = list(1.1 SECONDS, 1.9 SECONDS)
+
+/obj/item/fishing_lure/artificial_fly/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(/datum/fish_trait/picky_eater in fish_traits)
+ return TRUE
+ return FALSE
+
+/obj/item/fishing_lure/led
+ name = "\improper LED fishing lure"
+ desc = "A heavy, waterproof and fish-looking LED stick, used to catch abyssal and demersal fish alike."
+ icon_state = "led"
+ spin_frequency = list(3 SECONDS, 3.75 SECONDS)
+
+/obj/item/fishing_lure/led/Initialize(mapload)
+ . = ..()
+ ADD_TRAIT(src, TRAIT_BAIT_IGNORE_ENVIRONMENT, INNATE_TRAIT)
+ update_appearance(UPDATE_OVERLAYS)
+
+/obj/item/fishing_lure/led/update_overlays()
+ . = ..()
+ . += emissive_appearance(icon, "led_emissive", src)
+
+/obj/item/fishing_lure/led/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(length(list(/datum/fish_trait/nocturnal, /datum/fish_trait/heavy) & fish_traits))
+ return TRUE
+ return FALSE
+
+/obj/item/fishing_lure/lucky_coin
+ name = "\improper Maneki-Coin lure"
+ desc = "A faux-gold lure used to attract shiny-loving fish."
+ icon_state = "lucky_coin"
+ spin_frequency = list(1.5 SECONDS, 2.5 SECONDS)
+
+/obj/item/fishing_lure/lucky_coin/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(/datum/fish_trait/shiny_lover in fish_traits)
+ return TRUE
+ return FALSE
+
+/obj/item/fishing_lure/algae
+ name = "plastic algae lure"
+ desc = "A soft clump of fake algae used to attract herbivore water critters."
+ icon_state = "algae"
+ spin_frequency = list(3 SECONDS, 5 SECONDS)
+
+/obj/item/fishing_lure/algae/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(/datum/fish_trait/vegan in fish_traits)
+ return TRUE
+ return FALSE
+
+/obj/item/fishing_lure/grub
+ name = "\improper Twister Worm lure"
+ desc = "A soft plastic lure with the body of a grub and a twisting tail. Good for panfish and other small omnivore fish."
+ icon_state = "grub"
+ spin_frequency = list(1 SECONDS, 2.5 SECONDS)
+
+/obj/item/fishing_lure/grub/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ if(initial(fish_type.average_size) >= FISH_SIZE_SMALL_MAX)
+ return FALSE
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(length(list(/datum/fish_trait/vegan, /datum/fish_trait/picky_eater) & fish_traits))
+ return FALSE
+ return TRUE
+
+/obj/item/fishing_lure/buzzbait
+ name = "\improper Electric-Buzz lure"
+ desc = "A metallic, colored clanked attached to a series of cables that somehow attract shock-worthy fish."
+ icon_state = "buzzbait"
+ spin_frequency = list(0.8 SECONDS, 1.6 SECONDS)
+
+/obj/item/fishing_lure/buzzbait/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(/datum/fish_trait/electrogenesis in fish_traits)
+ return TRUE
+ return FALSE
+
+/obj/item/fishing_lure/spinnerbait
+ name = "spinnerbait lure"
+ desc = "A versatile lure, good for catching all sort of predatory freshwater fish."
+ icon_state = "spinnerbait"
+ spin_frequency = list(2 SECONDS, 4 SECONDS)
+
+/obj/item/fishing_lure/spinnerbait/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(!(/datum/fish_trait/predator in fish_traits))
+ return FALSE
+ var/init_fluid_type = initial(fish_type.required_fluid_type)
+ if(init_fluid_type == AQUARIUM_FLUID_FRESHWATER || init_fluid_type == AQUARIUM_FLUID_ANADROMOUS || init_fluid_type == AQUARIUM_FLUID_ANY_WATER)
+ return TRUE
+ if((/datum/fish_trait/amphibious in fish_traits) && init_fluid_type == AQUARIUM_FLUID_AIR) //fluid type is changed to freshwater on init
+ return TRUE
+ return FALSE
+
+/obj/item/fishing_lure/daisy_chain
+ name = "daisy chain lure"
+ desc = "A lure resembling a small school of fish, good for catching several saltwater predators."
+ icon_state = "daisy_chain"
+ spin_frequency = list(2 SECONDS, 4 SECONDS)
+
+/obj/item/fishing_lure/daisy_chain/is_catchable_fish(obj/item/fish/fish_type, list/fish_properties)
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
+ if(!(/datum/fish_trait/predator in fish_traits))
+ return FALSE
+ var/init_fluid_type = initial(fish_type.required_fluid_type)
+ if(init_fluid_type == AQUARIUM_FLUID_SALTWATER || init_fluid_type == AQUARIUM_FLUID_ANADROMOUS || init_fluid_type == AQUARIUM_FLUID_ANY_WATER)
+ return TRUE
+ return FALSE
diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm
index 19a20a40a816b..08d09188e6bdd 100644
--- a/code/modules/fishing/fish/_fish.dm
+++ b/code/modules/fishing/fish/_fish.dm
@@ -1,39 +1,44 @@
+#define FISH_SAD 0
+#define FISH_NEUTRAL 1
+#define FISH_SATISFIED 2
+#define FISH_HAPPY 3
+#define FISH_VERY_HAPPY 4
+
// Fish path used for autogenerated fish
/obj/item/fish
name = "generic looking aquarium fish"
desc = "very bland"
icon = 'icons/obj/aquarium/fish.dmi'
- icon_state = "bugfish"
lefthand_file = 'icons/mob/inhands/fish_lefthand.dmi'
righthand_file = 'icons/mob/inhands/fish_righthand.dmi'
- inhand_icon_state = "fish_normal"
force = 6
+ throwforce = 6
+ throw_range = 8
attack_verb_continuous = list("slaps", "whacks")
attack_verb_simple = list("slap", "whack")
- hitsound = 'sound/weapons/slap.ogg'
+ hitsound = SFX_DEFAULT_FISH_SLAP
+ drop_sound = 'sound/creatures/fish/fish_drop1.ogg'
+ pickup_sound = SFX_FISH_PICKUP
+ sound_vary = TRUE
///The grind results of the fish. They scale with the weight of the fish.
grind_results = list(/datum/reagent/blood = 5, /datum/reagent/consumable/liquidgibs = 5)
obj_flags = UNIQUE_RENAME
+ item_flags = IMMUTABLE_SLOW|SLOWS_WHILE_IN_HAND
- /// Resulting width of aquarium visual icon - default size of "fish_greyscale" state
- var/sprite_width = 3
- /// Resulting height of aquarium visual icon - default size of "fish_greyscale" state
- var/sprite_height = 3
-
- /// Original width of aquarium visual icon - used to calculate scaledown factor
- var/source_width = 32
- /// Original height of aquarium visual icon - used to calculate scaledown factor
- var/source_height = 32
+ /// width of aquarium visual icon
+ var/sprite_width
+ /// height of aquarium visual icon
+ var/sprite_height
+ ///this icon file will be used for in-aquarium visual for the fish
+ var/dedicated_in_aquarium_icon = 'icons/obj/aquarium/fish.dmi'
/**
- * If present and it also has a dedicated icon state, this icon file will
- * be used for in-aquarium visual for the fish instead of its icon
+ * The icon_state that will be used for in-aquarium visual for the fish
+ * If not set, "[initial(icon_state)]_small" will be used instead
*/
- var/dedicated_in_aquarium_icon
- /// If present this icon will be used for in-aquarium visual for the fish instead of icon_state
var/dedicated_in_aquarium_icon_state
- /// If present aquarium visual will be this color
+ /// If present aquarium visual will be of this color
var/aquarium_vc_color
/// Required fluid type for this fish to live.
@@ -82,12 +87,6 @@
var/list/compatible_types
/// A list of possible evolutions. If set, offsprings may be of a different, new fish type if conditions are met.
var/list/evolution_types
- /// The species' name(s) of the parents of the fish. Shown by the fish analyzer.
- var/progenitors
-
- var/flopping = FALSE
-
- var/in_stasis = FALSE
// Fishing related properties
@@ -97,8 +96,8 @@
*/
var/list/fish_traits = list()
- /// Fishing behaviour
- var/fish_ai_type = FISH_AI_DUMB
+ /// path to datums that dictate how the fish moves during the fishing minigame
+ var/fish_movement_type = /datum/fish_movement
/// Base additive modifier to fishing difficulty
var/fishing_difficulty_modifier = 0
@@ -125,6 +124,9 @@
/// Average weight for this fish type in grams
var/average_weight = 1000
+ ///The general deviation from the average weight and size this fish has in the wild
+ var/weight_size_deviation = 0.2
+
/// When outside of an aquarium, these gases that are checked (as well as pressure and temp) to assert if the environment is safe or not.
var/list/safe_air_limits = list(
/datum/gas/oxygen = list(12, 100),
@@ -145,6 +147,8 @@
/// The beauty this fish provides to the aquarium it's inserted in.
var/beauty = FISH_BEAUTY_GENERIC
+ ///have we recently pet this fish
+ var/recently_petted = FALSE
/obj/item/fish/Initialize(mapload, apply_qualities = TRUE)
. = ..()
@@ -164,7 +168,6 @@
if(apply_qualities)
apply_traits() //Make sure traits are applied before size and weight.
update_size_and_weight()
- progenitors = full_capitalize(name) //default value
register_evolutions()
@@ -190,12 +193,26 @@
/obj/item/fish/examine(mob/user)
. = ..()
- // All spacemen have magic eyes of fish weight perception until fish scale (get it?) is implemented.
- . += span_notice("It's [size] cm long.")
- . += span_notice("It weighs [weight] g.")
+ if(HAS_MIND_TRAIT(user, TRAIT_EXAMINE_DEEPER_FISH))
+ if(status == FISH_DEAD)
+ . += span_deadsay("it's dead.")
+ var/list/warnings = list()
+ if(is_hungry())
+ warnings += "starving"
+ if(!HAS_TRAIT(src, TRAIT_FISH_STASIS) && !proper_environment())
+ warnings += "drowning"
+ if(health < initial(health) * 0.6)
+ warnings += "sick"
+ if(length(warnings))
+ . += span_warning("it's [english_list(warnings)]")
+ if(HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISH))
+ . += span_notice("It's [size] cm long.")
+ . += span_notice("It weighs [weight] g.")
+ if(HAS_TRAIT(src, TRAIT_FISHING_BAIT))
+ . += span_smallnoticeital("It can be used as a fishing bait.")
///Randomizes weight and size.
-/obj/item/fish/proc/randomize_size_and_weight(base_size = average_size, base_weight = average_weight, deviation = 0.2)
+/obj/item/fish/proc/randomize_size_and_weight(base_size = average_size, base_weight = average_weight, deviation = weight_size_deviation)
var/size_deviation = 0.2 * base_size
var/new_size = round(clamp(gaussian(base_size, size_deviation), average_size * 1/MAX_FISH_DEVIATION_COEFF, average_size * MAX_FISH_DEVIATION_COEFF))
@@ -206,38 +223,139 @@
///Updates weight and size, along with weight class, number of fillets you can get and grind results.
/obj/item/fish/proc/update_size_and_weight(new_size = average_size, new_weight = average_weight)
- if(size && fillet_type)
- RemoveElement(/datum/element/processable, TOOL_KNIFE, fillet_type, num_fillets, 0.5 SECONDS, screentip_verb = "Cut")
+ SEND_SIGNAL(src, COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT, new_size, new_weight)
+ if(size)
+ if(fillet_type)
+ RemoveElement(/datum/element/processable, TOOL_KNIFE, fillet_type, num_fillets, 0.5 SECONDS * num_fillets, screentip_verb = "Cut")
+ if(size > FISH_SIZE_TWO_HANDS_REQUIRED)
+ qdel(GetComponent(/datum/component/two_handed))
size = new_size
+ var/init_icon_state = initial(inhand_icon_state)
switch(size)
if(0 to FISH_SIZE_TINY_MAX)
update_weight_class(WEIGHT_CLASS_TINY)
- inhand_icon_state = "fish_small"
+ if(!init_icon_state)
+ inhand_icon_state = "fish_small"
if(FISH_SIZE_TINY_MAX to FISH_SIZE_SMALL_MAX)
- inhand_icon_state = "fish_small"
+ if(!init_icon_state)
+ inhand_icon_state = "fish_small"
update_weight_class(WEIGHT_CLASS_SMALL)
if(FISH_SIZE_SMALL_MAX to FISH_SIZE_NORMAL_MAX)
- inhand_icon_state = "fish_normal"
+ if(!init_icon_state)
+ inhand_icon_state = "fish_normal"
update_weight_class(WEIGHT_CLASS_NORMAL)
if(FISH_SIZE_NORMAL_MAX to FISH_SIZE_BULKY_MAX)
- inhand_icon_state = "fish_bulky"
+ if(!init_icon_state)
+ inhand_icon_state = "fish_bulky"
update_weight_class(WEIGHT_CLASS_BULKY)
- if(FISH_SIZE_BULKY_MAX to INFINITY)
- inhand_icon_state = "fish_huge"
+ if(FISH_SIZE_BULKY_MAX to FISH_SIZE_HUGE_MAX)
+ if(!init_icon_state)
+ inhand_icon_state = "fish_huge"
update_weight_class(WEIGHT_CLASS_HUGE)
+ if(FISH_SIZE_HUGE_MAX to INFINITY)
+ if(!init_icon_state)
+ inhand_icon_state = "fish_huge"
+ update_weight_class(WEIGHT_CLASS_GIGANTIC)
+
+ if(size > FISH_SIZE_TWO_HANDS_REQUIRED || (HAS_TRAIT(src, TRAIT_FISH_SHOULD_TWOHANDED) && w_class >= WEIGHT_CLASS_BULKY))
+ inhand_icon_state = "[inhand_icon_state]_wielded"
+ AddComponent(/datum/component/two_handed, require_twohands = TRUE)
+
if(fillet_type)
var/init_fillets = initial(num_fillets)
var/amount = max(round(init_fillets * size / FISH_FILLET_NUMBER_SIZE_DIVISOR, 1), 1)
num_fillets = amount
- AddElement(/datum/element/processable, TOOL_KNIFE, fillet_type, num_fillets, 0.5 SECONDS, screentip_verb = "Cut")
+ AddElement(/datum/element/processable, TOOL_KNIFE, fillet_type, num_fillets, 0.5 SECONDS * num_fillets, screentip_verb = "Cut")
if(weight)
for(var/reagent_type in grind_results)
grind_results[reagent_type] /= FLOOR(weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR, 0.1)
weight = new_weight
+
+ if(weight >= FISH_WEIGHT_SLOWDOWN)
+ slowdown = round(((weight/FISH_WEIGHT_SLOWDOWN_DIVISOR)**FISH_WEIGHT_SLOWDOWN_EXPONENT)-1.3, 0.1)
+ drag_slowdown = round(slowdown * 0.5, 1)
+ else
+ slowdown = 0
+ drag_slowdown = 0
+ if(ismob(loc))
+ var/mob/mob = loc
+ mob.update_equipment_speed_mods()
+
for(var/reagent_type in grind_results)
grind_results[reagent_type] *= FLOOR(weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR, 0.1)
+ update_fish_force()
+
+///Reset weapon-related variables of this items and recalculates those values based on the fish weight and size.
+/obj/item/fish/proc/update_fish_force()
+ if(force >= 15 && hitsound == SFX_ALT_FISH_SLAP)
+ hitsound = SFX_DEFAULT_FISH_SLAP
+ force = initial(force)
+ throwforce = initial(throwforce)
+ throw_range = initial(throw_range)
+ demolition_mod = initial(demolition_mod)
+ attack_verb_continuous = initial(attack_verb_continuous)
+ attack_verb_simple = initial(attack_verb_simple)
+ hitsound = initial(hitsound)
+ damtype = initial(damtype)
+ attack_speed = initial(attack_speed)
+ block_chance = initial(block_chance)
+ armour_penetration = initial(armour_penetration)
+ wound_bonus = initial(wound_bonus)
+ bare_wound_bonus = initial(bare_wound_bonus)
+ toolspeed = initial(toolspeed)
+
+ var/weight_rank = max(round(1 + log(2, weight/FISH_WEIGHT_FORCE_DIVISOR), 1), 1)
+
+ throw_range -= weight_rank
+ get_force_rank()
+
+ var/bonus_malus = weight_rank - w_class
+ if(bonus_malus)
+ calculate_fish_force_bonus(bonus_malus)
+
+ throwforce = force
+
+ SEND_SIGNAL(src, COMSIG_FISH_FORCE_UPDATED, weight_rank, bonus_malus)
+
+
+ if(material_flags & MATERIAL_EFFECTS) //struck by metal gen or something.
+ for(var/current_material in custom_materials)
+ var/datum/material/material = GET_MATERIAL_REF(current_material)
+ force *= material.strength_modifier
+ throwforce *= material.strength_modifier
+ if(material.item_sound_override)
+ hitsound = material.item_sound_override
+
+ if(force >=15 && hitsound == SFX_DEFAULT_FISH_SLAP) // don't override special attack sounds
+ hitsound = SFX_ALT_FISH_SLAP // do more damage - do heavier slap sound
+
+///A proc that makes the fish slightly stronger or weaker if there's a noticeable discrepancy between size and weight.
+/obj/item/fish/proc/calculate_fish_force_bonus(bonus_malus)
+ demolition_mod += bonus_malus * 0.1
+ attack_speed += bonus_malus * 0.1
+ force = round(force * (1 + bonus_malus * 0.1), 0.1)
+
+/obj/item/fish/proc/get_force_rank()
+ switch(w_class)
+ if(WEIGHT_CLASS_TINY)
+ force -= 3
+ attack_speed -= 0.1 SECONDS
+ if(WEIGHT_CLASS_NORMAL)
+ force += 2
+ if(WEIGHT_CLASS_BULKY)
+ force += 5
+ attack_speed += 0.1 SECONDS
+ if(WEIGHT_CLASS_HUGE)
+ force += 9
+ attack_speed += 0.2 SECONDS
+ demolition_mod += 0.2
+ if(WEIGHT_CLASS_GIGANTIC)
+ force += 13
+ attack_speed += 0.4 SECONDS
+ demolition_mod += 0.4
+
/**
* This proc has fish_traits list populated with fish_traits paths from three different lists:
* traits from x_traits and y_traits are compared, and inserted if conditions are met;
@@ -306,13 +424,13 @@
check_environment()
/obj/item/fish/proc/enter_stasis()
- in_stasis = TRUE
+ ADD_TRAIT(src, TRAIT_FISH_STASIS, INNATE_TRAIT)
// Stop processing until inserted into aquarium again.
stop_flopping()
STOP_PROCESSING(SSobj, src)
/obj/item/fish/proc/exit_stasis()
- in_stasis = FALSE
+ REMOVE_TRAIT(src, TRAIT_FISH_STASIS, INNATE_TRAIT)
if(status != FISH_DEAD)
START_PROCESSING(SSobj, src)
@@ -332,15 +450,9 @@
fed_reagents.remove_reagent(fed_reagent_type, 0.1)
SEND_SIGNAL(src, COMSIG_FISH_FED, fed_reagents, fed_reagent_type)
-/obj/item/fish/proc/check_environment(stasis_check = TRUE)
+/obj/item/fish/proc/check_environment()
if(QDELETED(src)) //we don't care anymore
return
- if(stasis_check)
- // Apply/remove stasis as needed
- if(loc && HAS_TRAIT(loc, TRAIT_FISH_SAFE_STORAGE))
- enter_stasis()
- else if(in_stasis)
- exit_stasis()
if(!do_flop_animation)
return
@@ -348,7 +460,7 @@
// Do additional stuff
var/in_aquarium = isaquarium(loc)
// Start flopping if outside of fish container
- var/should_be_flopping = status == FISH_ALIVE && loc && !HAS_TRAIT(loc,TRAIT_FISH_SAFE_STORAGE) && !in_aquarium
+ var/should_be_flopping = status == FISH_ALIVE && !HAS_TRAIT(src, TRAIT_FISH_STASIS) && !in_aquarium
if(should_be_flopping)
start_flopping()
@@ -356,7 +468,7 @@
stop_flopping()
/obj/item/fish/process(seconds_per_tick)
- if(in_stasis || status != FISH_ALIVE)
+ if(HAS_TRAIT(src, TRAIT_FISH_STASIS) || status != FISH_ALIVE)
return
process_health(seconds_per_tick)
@@ -368,7 +480,7 @@
SEND_SIGNAL(src, COMSIG_FISH_LIFE, seconds_per_tick)
-/obj/item/fish/proc/set_status(new_status)
+/obj/item/fish/proc/set_status(new_status, silent = FALSE)
if(status == new_status)
return
switch(new_status)
@@ -376,20 +488,36 @@
status = FISH_ALIVE
health = initial(health) // since the fishe has been revived
last_feeding = world.time //reset hunger
- check_environment(FALSE)
+ check_environment()
START_PROCESSING(SSobj, src)
if(FISH_DEAD)
status = FISH_DEAD
STOP_PROCESSING(SSobj, src)
stop_flopping()
- var/message = span_notice(replacetext(death_text, "%SRC", "[src]"))
- if(isaquarium(loc))
- loc.visible_message(message)
- else
- visible_message(message)
+ if(!silent)
+ var/message = span_notice(replacetext(death_text, "%SRC", "[src]"))
+ if(isaquarium(loc))
+ loc.visible_message(message)
+ else
+ visible_message(message)
update_appearance()
+ update_fish_force()
SEND_SIGNAL(src, COMSIG_FISH_STATUS_CHANGED)
+/obj/item/fish/expose_reagents(list/reagents, datum/reagents/source, methods = TOUCH, volume_modifier = 1, show_message = TRUE)
+ . = ..()
+ if(. & COMPONENT_NO_EXPOSE_REAGENTS || status != FISH_DEAD)
+ return
+ var/datum/reagent/medicine/strange_reagent/revival = locate() in reagents
+ if(!revival)
+ return
+ if(reagents[revival] >= 2 * w_class)
+ set_status(FISH_ALIVE)
+ else
+ balloon_alert_to_viewers("twitches for a moment!")
+ animate(src, pixel_x = 1, time = 0.1 SECONDS, loop = 2, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL)
+ animate(pixel_x = -1, flags = ANIMATION_RELATIVE)
+
/obj/item/fish/proc/use_lazarus(datum/source, obj/item/lazarus_injector/injector, mob/user)
SIGNAL_HANDLER
if(injector.revive_type != SENTIENCE_ORGANIC)
@@ -460,7 +588,7 @@
return FALSE
if(!being_targeted && length(aquarium.get_fishes()) >= AQUARIUM_MAX_BREEDING_POPULATION)
return FALSE
- return aquarium.allow_breeding && health >= initial(health) * 0.8 && stable_population > 1 && world.time >= breeding_wait
+ return aquarium.allow_breeding && health >= initial(health) * 0.8 && stable_population >= 1 && world.time >= breeding_wait
/obj/item/fish/proc/try_to_reproduce()
var/obj/structure/aquarium/aquarium = loc
@@ -495,36 +623,48 @@
second_fish = other_fish
break
- if(!second_fish && !HAS_TRAIT(src, TRAIT_FISH_SELF_REPRODUCE))
- return FALSE
+ if(!second_fish)
+ if(!HAS_TRAIT(src, TRAIT_FISH_SELF_REPRODUCE))
+ return FALSE
+ if(length(aquarium.tracked_fish_by_type[type]) >= stable_population)
+ return FALSE
+
+ if(PERFORM_ALL_TESTS(fish_breeding) && second_fish && !length(evolution_types))
+ return create_offspring(second_fish.type, second_fish)
var/chosen_type
var/datum/fish_evolution/chosen_evolution
- if(PERFORM_ALL_TESTS(fish_breeding) && second_fish && !length(evolution_types))
- chosen_type = second_fish.type
- else
- var/list/possible_evolutions = list()
- for(var/evolution_type in evolution_types)
+ var/list/possible_evolutions = list()
+ for(var/evolution_type in evolution_types)
+ var/datum/fish_evolution/evolution = GLOB.fish_evolutions[evolution_type]
+ if(evolution.check_conditions(src, second_fish, aquarium))
+ possible_evolutions += evolution
+ if(second_fish?.evolution_types)
+ var/secondary_evolutions = (second_fish.evolution_types - evolution_types)
+ for(var/evolution_type in secondary_evolutions)
var/datum/fish_evolution/evolution = GLOB.fish_evolutions[evolution_type]
- if(evolution.check_conditions(src, second_fish, aquarium))
+ if(evolution.check_conditions(second_fish, src, aquarium))
possible_evolutions += evolution
- if(second_fish?.evolution_types)
- var/secondary_evolutions = (second_fish.evolution_types - evolution_types)
- for(var/evolution_type in secondary_evolutions)
- var/datum/fish_evolution/evolution = GLOB.fish_evolutions[evolution_type]
- if(evolution.check_conditions(second_fish, src, aquarium))
- possible_evolutions += evolution
-
- if(length(possible_evolutions))
- chosen_evolution = pick(possible_evolutions)
- chosen_type = chosen_evolution.new_fish_type
- else if(second_fish)
- if(length(aquarium.tracked_fish_by_type[type]) >= stable_population)
+
+ if(length(possible_evolutions))
+ chosen_evolution = pick(possible_evolutions)
+ chosen_type = chosen_evolution.new_fish_type
+ else if(second_fish)
+ var/recessive = HAS_TRAIT(src, TRAIT_FISH_RECESSIVE)
+ var/recessive_partner = HAS_TRAIT(second_fish, TRAIT_FISH_RECESSIVE)
+ if(length(aquarium.tracked_fish_by_type[type]) >= stable_population)
+ if(recessive_partner && !recessive)
+ return FALSE
+ chosen_type = second_fish.type
+ else
+ if(recessive && !recessive_partner)
chosen_type = second_fish.type
+ else if(recessive_partner && !recessive)
+ chosen_type = type
else
chosen_type = pick(second_fish.type, type)
- else
- chosen_type = type
+ else
+ chosen_type = type
return create_offspring(chosen_type, second_fish, chosen_evolution)
@@ -540,12 +680,6 @@
partner.breeding_wait = world.time + breeding_timeout
else //Make a close of this fish.
new_fish.update_size_and_weight(size, weight, TRUE)
- new_fish.progenitors = initial(name)
- if(partner && type != partner.type)
- var/string = "[initial(name)] - [initial(partner.name)]"
- new_fish.progenitors = full_capitalize(string)
- else
- new_fish.progenitors = full_capitalize(initial(name))
breeding_wait = world.time + breeding_timeout
@@ -594,15 +728,15 @@
/// Starts flopping animation
/obj/item/fish/proc/start_flopping()
- if(flopping) //Requires update_transform/animate_wrappers to be less restrictive.
+ if(HAS_TRAIT(src, TRAIT_FISH_FLOPPING)) //Requires update_transform/animate_wrappers to be less restrictive.
return
- flopping = TRUE
+ ADD_TRAIT(src, TRAIT_FISH_FLOPPING, TRAIT_GENERIC)
flop_animation()
/// Stops flopping animation
/obj/item/fish/proc/stop_flopping()
- if(flopping)
- flopping = FALSE
+ if(HAS_TRAIT(src, TRAIT_FISH_FLOPPING))
+ REMOVE_TRAIT(src, TRAIT_FISH_FLOPPING, TRAIT_GENERIC)
animate(src, transform = matrix()) //stop animation
/// Refreshes flopping animation after temporary animation finishes
@@ -611,7 +745,7 @@
addtimer(CALLBACK(src, PROC_REF(refresh_flopping)), animation_duration)
/obj/item/fish/proc/refresh_flopping()
- if(flopping)
+ if(HAS_TRAIT(src, TRAIT_FISH_FLOPPING))
flop_animation()
/obj/item/fish/proc/try_electrogenesis()
@@ -634,6 +768,31 @@
if(HAS_TRAIT(src, TRAIT_FISH_FROM_CASE)) //Avoid printing money by simply ordering fish and sending it back.
calculated_price *= 0.05
return round(calculated_price)
+/obj/item/fish/proc/get_happiness_value()
+ var/happiness_value = 0
+ if(recently_petted)
+ happiness_value++
+ if(HAS_TRAIT(src, TRAIT_FISH_NO_HUNGER) || min((world.time - last_feeding) / feeding_frequency, 1) < 0.5)
+ happiness_value++
+ var/obj/structure/aquarium/aquarium = loc
+ if(!istype(aquarium))
+ return happiness_value
+ if(compatible_fluid_type(required_fluid_type, aquarium.fluid_type))
+ happiness_value++
+ if(ISINRANGE(aquarium.fluid_temp, required_temperature_min, required_temperature_max))
+ happiness_value++
+ return happiness_value
+
+/obj/item/fish/proc/pet_fish(mob/living/user)
+ if(recently_petted)
+ to_chat(user, span_warning("[src] runs away from your finger as you dip it into the water!"))
+ return
+ if(electrogenesis_power > 15 MEGA JOULES)
+ user.electrocute_act(5, src) //was it all worth it?
+ recently_petted = TRUE
+ SEND_SIGNAL(src, COMSIG_FISH_PETTED)
+ to_chat(user, span_notice("[src] dances around!"))
+ addtimer(VARSET_CALLBACK(src, recently_petted, FALSE), 30 SECONDS)
/// Returns random fish, using random_case_rarity probabilities.
/proc/random_fish_type(required_fluid)
diff --git a/code/modules/fishing/fish/chasm_detritus.dm b/code/modules/fishing/fish/chasm_detritus.dm
index ea9fcb4775770..9595c552e18d2 100644
--- a/code/modules/fishing/fish/chasm_detritus.dm
+++ b/code/modules/fishing/fish/chasm_detritus.dm
@@ -96,7 +96,7 @@ GLOBAL_LIST_INIT_TYPED(chasm_detritus_types, /datum/chasm_detritus, init_chasm_d
/// This also includes all mobs fallen into chasms, regardless of distance
/datum/chasm_detritus/restricted/bodies/get_chasm_contents(turf/fishing_spot)
. = ..()
- . |= GLOB.chasm_fallen_mobs
+ . |= GLOB.chasm_fallen_mobs[get_chasm_category(fishing_spot)]
/// Body detritus is selected in favor of bodies belonging to sentient mobs
/// The first sentient body found in the list of contents is returned, otherwise
diff --git a/code/modules/fishing/fish/fish_evolution.dm b/code/modules/fishing/fish/fish_evolution.dm
index e6e2f1d9570ac..688b0c201c7b4 100644
--- a/code/modules/fishing/fish/fish_evolution.dm
+++ b/code/modules/fishing/fish/fish_evolution.dm
@@ -78,6 +78,7 @@ GLOBAL_LIST_INIT(fish_evolutions, init_subtypes_w_path_keys(/datum/fish_evolutio
/datum/fish_evolution/purple_sludgefish
probability = 5
new_fish_type = /obj/item/fish/sludgefish/purple
+ new_traits = list(/datum/fish_trait/recessive)
removed_traits = list(/datum/fish_trait/no_mating)
/datum/fish_evolution/mastodon
@@ -85,7 +86,7 @@ GLOBAL_LIST_INIT(fish_evolutions, init_subtypes_w_path_keys(/datum/fish_evolutio
probability = 40
new_fish_type = /obj/item/fish/mastodon
new_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/amphibious, /datum/fish_trait/predator, /datum/fish_trait/aggressive)
- conditions_note = "The fish (and its mate) need to be unusually big both in size and weight."
+ conditions_note = "The fish (and its mate) needs to be unusually big both in size and weight."
/datum/fish_evolution/mastodon/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium)
if((source.size < 120 || source.weight < 3000) || (mate && (mate.size < 120 || mate.weight < 3000)))
@@ -103,3 +104,23 @@ GLOBAL_LIST_INIT(fish_evolutions, init_subtypes_w_path_keys(/datum/fish_evolutio
new_fish_type = /obj/item/fish/chasm_crab/ice
required_temperature_min = MIN_AQUARIUM_TEMP+9
required_temperature_max = MIN_AQUARIUM_TEMP+10
+
+/datum/fish_evolution/three_eyes
+ name = "Three-eyed Goldfish"
+ probability = 3
+ new_fish_type = /obj/item/fish/goldfish/three_eyes
+ new_traits = list(/datum/fish_trait/recessive)
+
+/datum/fish_evolution/chainsawfish
+ name = "Chainsawfish"
+ probability = 30
+ new_fish_type = /obj/item/fish/chainsawfish
+ new_traits = list(/datum/fish_trait/predator, /datum/fish_trait/aggressive)
+ conditions_note = "The fish needs to be unusually big and aggressive"
+
+/datum/fish_evolution/chainsawfish/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium)
+ var/double_avg_size = /obj/item/fish/goldfish::average_size * 2
+ var/double_avg_weight = /obj/item/fish/goldfish::average_weight * 2
+ if(source.size >= double_avg_size && source.weight >= double_avg_weight && (/datum/fish_trait/aggressive in source.fish_traits))
+ return ..()
+ return FALSE
diff --git a/code/modules/fishing/fish/fish_traits.dm b/code/modules/fishing/fish/fish_traits.dm
index 76b0cc8691c21..e51b810d16b2e 100644
--- a/code/modules/fishing/fish/fish_traits.dm
+++ b/code/modules/fishing/fish/fish_traits.dm
@@ -37,6 +37,8 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
var/list/fish_whitelist
/// Depending on the value, fish with trait will be reported as more or less difficult in the catalog.
var/added_difficulty = 0
+ /// Reagents added to the fish when gained
+ var/list/reagents_to_add
/// Difficulty modifier from this mod, needs to return a list with two values
/datum/fish_trait/proc/difficulty_mod(obj/item/fishing_rod/rod, mob/fisherman)
@@ -44,7 +46,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
return list(ADDITIVE_FISHING_MOD = 0, MULTIPLICATIVE_FISHING_MOD = 1)
/// Catch weight table modifier from this mod, needs to return a list with two values
-/datum/fish_trait/proc/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman)
+/datum/fish_trait/proc/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman, atom/location, obj/item/fish/fish_type)
SHOULD_CALL_PARENT(TRUE)
return list(ADDITIVE_FISHING_MOD = 0, MULTIPLICATIVE_FISHING_MOD = 1)
@@ -54,7 +56,11 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
/// Applies some special qualities to the fish that has been spawned
/datum/fish_trait/proc/apply_to_fish(obj/item/fish/fish)
- return
+ SHOULD_CALL_PARENT(TRUE)
+ if(reagents_to_add)
+ for(var/reagent in reagents_to_add)
+ add_to_reagents(fish, reagent, reagents_to_add[reagent])
+ RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(process_reagents))
/// Applies some special qualities to basic mobs generated by fish (i.e. chasm chrab --> young lobstrosity --> lobstrosity).
/datum/fish_trait/proc/apply_to_mob(mob/living/basic/mob)
@@ -79,6 +85,37 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
fish.grind_results.Insert(1, reagent_type)
fish.grind_results[reagent_type] = amount
+/// Proc that handles adding reagents from the trait to the fillets from butchered fish.
+/datum/fish_trait/proc/process_reagents(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results)
+ SIGNAL_HANDLER
+ var/results_with_reagents = 0
+ for(var/atom/result as anything in results)
+ if(result.reagents)
+ results_with_reagents++
+ if(!results_with_reagents)
+ return
+ for(var/reagent in reagents_to_add)
+ var/amount = round(source.grind_results[reagent] / results_with_reagents, 0.1)
+ for(var/atom/result as anything in results)
+ result.reagents?.add_reagent(reagent, amount)
+
+/// Proc that adds or changes the venomous when the fish size and/or weight are updated
+/datum/fish_trait/proc/add_venom(obj/item/fish/source, venom_path, new_weight, mult = 0.25)
+ if(source.size)
+ var/old_amount = max(round((source.weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR) * mult, 0.1), mult)
+ source.RemoveElement(/datum/element/venomous, venom_path, old_amount)
+
+ var/new_amount = max(round((new_weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR) * mult, 0.1), mult)
+ source.AddElement(/datum/element/venomous, venom_path, new_amount)
+
+/// Proc that changes the venomous element based on if the fish is alive or dead (basically dead fish are weaker).
+/datum/fish_trait/proc/change_venom_on_death(obj/item/fish/source, venom_path, live_mult, dead_mult)
+ var/live_amount = max(round((source.weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR) * live_mult, 0.1), live_mult)
+ var/dead_amount = max(round((source.weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR) * dead_mult, 0.1), dead_mult)
+ var/is_dead = source.status == FISH_DEAD
+ source.RemoveElement(/datum/element/venomous, venom_path, is_dead ? live_amount : dead_amount, thrown_effect = TRUE)
+ source.AddElement(/datum/element/venomous, venom_path, is_dead ? dead_amount : live_amount, thrown_effect = TRUE)
+
/datum/fish_trait/wary
name = "Wary"
catalog_description = "This fish will avoid visible fish lines, cloaked line recommended."
@@ -101,31 +138,35 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
/datum/fish_trait/picky_eater
name = "Picky Eater"
- catalog_description = "This fish is very picky and will ignore low quality bait."
+ catalog_description = "This fish is very picky and will ignore low quality bait (unless it's amongst its favorites)."
-/datum/fish_trait/picky_eater/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman)
+/datum/fish_trait/picky_eater/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman, atom/location, obj/item/fish/fish_type)
. = ..()
if(!rod.bait)
.[MULTIPLICATIVE_FISHING_MOD] = 0
return
if(HAS_TRAIT(rod.bait, TRAIT_OMNI_BAIT))
return
- if(HAS_TRAIT(rod.bait, TRAIT_GOOD_QUALITY_BAIT) || HAS_TRAIT(rod.bait, TRAIT_GREAT_QUALITY_BAIT))
+ if(is_matching_bait(rod.bait, SSfishing.fish_properties[fish_type][FISH_PROPERTIES_FAV_BAIT])) //we like this bait anyway
+ return
+ if(!HAS_TRAIT(rod.bait, TRAIT_GOOD_QUALITY_BAIT) && !HAS_TRAIT(rod.bait, TRAIT_GREAT_QUALITY_BAIT))
.[MULTIPLICATIVE_FISHING_MOD] = 0
-
/datum/fish_trait/nocturnal
name = "Nocturnal"
catalog_description = "This fish avoids bright lights, fishing and storing in darkness recommended."
-/datum/fish_trait/nocturnal/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman)
+/datum/fish_trait/nocturnal/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman, atom/location, obj/item/fish/fish_type)
. = ..()
- var/turf/turf = get_turf(fisherman)
- var/light_amount = turf.get_lumcount()
+ if(rod.bait && HAS_TRAIT(rod.bait, TRAIT_BAIT_IGNORE_ENVIRONMENT))
+ return
+ var/turf/turf = get_turf(location)
+ var/light_amount = turf?.get_lumcount()
if(light_amount > SHADOW_SPECIES_LIGHT_THRESHOLD)
.[MULTIPLICATIVE_FISHING_MOD] = 0
/datum/fish_trait/nocturnal/apply_to_fish(obj/item/fish/fish)
+ . = ..()
RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(check_light))
/datum/fish_trait/nocturnal/proc/check_light(obj/item/fish/source, seconds_per_tick)
@@ -157,7 +198,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
mob.apply_status_effect(/datum/status_effect/shadow_regeneration)
/datum/fish_trait/heavy
- name = "Heavy"
+ name = "Demersal"
catalog_description = "This fish tends to stay near the waterbed."
/datum/fish_trait/heavy/apply_to_mob(mob/living/basic/mob)
@@ -170,25 +211,27 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
mob.obj_damage *= 1.3
/datum/fish_trait/heavy/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/minigame)
- minigame.fish_idle_velocity -= 10
+ minigame.mover.fish_idle_velocity -= 10
/datum/fish_trait/carnivore
name = "Carnivore"
catalog_description = "This fish can only be baited with meat."
incompatible_traits = list(/datum/fish_trait/vegan)
-/datum/fish_trait/carnivore/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman)
+/datum/fish_trait/carnivore/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman, atom/location, obj/item/fish/fish_type)
. = ..()
if(!rod.bait)
.[MULTIPLICATIVE_FISHING_MOD] = 0
return
if(HAS_TRAIT(rod.bait, TRAIT_OMNI_BAIT))
return
+ if(isfish(rod.bait))
+ return
if(!istype(rod.bait, /obj/item/food))
.[MULTIPLICATIVE_FISHING_MOD] = 0
return
var/obj/item/food/food_bait = rod.bait
- if(!(food_bait.foodtypes & MEAT))
+ if(!(food_bait.foodtypes & (MEAT|SEAFOOD|BUGS)))
.[MULTIPLICATIVE_FISHING_MOD] = 0
/datum/fish_trait/vegan
@@ -196,14 +239,20 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
catalog_description = "This fish can only be baited with fresh produce."
incompatible_traits = list(/datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/necrophage)
-/datum/fish_trait/vegan/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman)
+/datum/fish_trait/vegan/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman, atom/location, obj/item/fish/fish_type)
. = ..()
if(!rod.bait)
.[MULTIPLICATIVE_FISHING_MOD] = 0
return
if(HAS_TRAIT(rod.bait, TRAIT_OMNI_BAIT))
return
- if(!istype(rod.bait, /obj/item/food/grown))
+ if(!istype(rod.bait, /obj/item/food))
+ .[MULTIPLICATIVE_FISHING_MOD] = 0
+ return
+ if(istype(rod.bait, /obj/item/food/grown))
+ return
+ var/obj/item/food/food_bait = rod.bait
+ if(food_bait.foodtypes & (MEAT|SEAFOOD|GORE|BUGS|DAIRY) || !(food_bait.foodtypes & (VEGETABLES|FRUIT)))
.[MULTIPLICATIVE_FISHING_MOD] = 0
/datum/fish_trait/emulsijack
@@ -211,6 +260,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
catalog_description = "This fish emits an invisible toxin that emulsifies other fish for it to feed on."
/datum/fish_trait/emulsijack/apply_to_fish(obj/item/fish/fish)
+ . = ..()
RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(emulsify))
ADD_TRAIT(fish, TRAIT_RESIST_EMULSIFY, FISH_TRAIT_DATUM)
@@ -250,6 +300,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
incompatible_traits = list(/datum/fish_trait/vegan)
/datum/fish_trait/necrophage/apply_to_fish(obj/item/fish/fish)
+ . = ..()
RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(eat_dead_fishes))
/datum/fish_trait/necrophage/proc/eat_dead_fishes(obj/item/fish/source, seconds_per_tick)
@@ -269,6 +320,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
diff_traits_inheritability = 25
/datum/fish_trait/parthenogenesis/apply_to_fish(obj/item/fish/fish)
+ . = ..()
ADD_TRAIT(fish, TRAIT_FISH_SELF_REPRODUCE, FISH_TRAIT_DATUM)
/**
@@ -282,8 +334,19 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
incompatible_traits = list(/datum/fish_trait/crossbreeder)
/datum/fish_trait/no_mating/apply_to_fish(obj/item/fish/fish)
+ . = ..()
ADD_TRAIT(fish, TRAIT_FISH_NO_MATING, FISH_TRAIT_DATUM)
+///Prevent offsprings of fish with this trait from being of the same type (unless self-mating or the partner also has the trait)
+/datum/fish_trait/recessive
+ name = "Recessive"
+ catalog_description = "If crossbred, offsprings will always be of the mate species, unless it also possess the trait."
+ diff_traits_inheritability = 0
+
+/datum/fish_trait/no_mating/apply_to_fish(obj/item/fish/fish)
+ . = ..()
+ ADD_TRAIT(fish, TRAIT_FISH_RECESSIVE, FISH_TRAIT_DATUM)
+
/datum/fish_trait/revival
diff_traits_inheritability = 15
name = "Self-Revival"
@@ -291,6 +354,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
spontaneous_manifest_types = list(/obj/item/fish/boned = 100, /obj/item/fish/mastodon = 100)
/datum/fish_trait/revival/apply_to_fish(obj/item/fish/fish)
+ . = ..()
RegisterSignal(fish, COMSIG_FISH_STATUS_CHANGED, PROC_REF(check_status))
/datum/fish_trait/revival/proc/check_status(obj/item/fish/source)
@@ -318,7 +382,13 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
catalog_description = "It's a predatory fish. It'll hunt down and eat live fishes of smaller size when hungry."
incompatible_traits = list(/datum/fish_trait/vegan)
+/datum/fish_trait/predator/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman, atom/location, obj/item/fish/fish_type)
+ . = ..()
+ if(isfish(rod.bait))
+ .[MULTIPLICATIVE_FISHING_MOD] *= 2
+
/datum/fish_trait/predator/apply_to_fish(obj/item/fish/fish)
+ . = ..()
RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(eat_fishes))
/datum/fish_trait/predator/proc/eat_fishes(obj/item/fish/source, seconds_per_tick)
@@ -327,7 +397,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
return
var/obj/structure/aquarium/aquarium = source.loc
for(var/obj/item/fish/victim in aquarium.get_fishes(TRUE, source))
- if(victim.size < source.size * 0.75) // It's a big fish eat small fish world
+ if(victim.size < source.size * 0.7) // It's a big fish eat small fish world
continue
if(victim.status != FISH_ALIVE || victim == source || HAS_TRAIT(victim, TRAIT_YUCKY_FISH) || SPT_PROB(80, seconds_per_tick))
continue
@@ -337,31 +407,35 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
/datum/fish_trait/yucky
name = "Yucky"
catalog_description = "This fish tastes so repulsive, other fishes won't try to eat it."
+ reagents_to_add = list(/datum/reagent/yuck = 3)
/datum/fish_trait/yucky/apply_to_fish(obj/item/fish/fish)
- RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(add_yuck))
+ . = ..()
ADD_TRAIT(fish, TRAIT_YUCKY_FISH, FISH_TRAIT_DATUM)
- add_to_reagents(fish, /datum/reagent/yuck, 3)
-
-/datum/fish_trait/yucky/proc/add_yuck(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results)
- var/amount = source.grind_results[/datum/reagent/yuck] / length(results)
- for(var/atom/result as anything in results)
- result.reagents?.add_reagent(/datum/reagent/yuck, amount)
/datum/fish_trait/toxic
name = "Toxic"
- catalog_description = "This fish contains toxins in its liver. Feeding it to predatory fishes or people is not reccomended."
+ catalog_description = "This fish contains toxins. Feeding it to predatory fishes or people is not reccomended."
diff_traits_inheritability = 25
+ reagents_to_add = list(/datum/reagent/toxin/tetrodotoxin = 2.5)
/datum/fish_trait/toxic/apply_to_fish(obj/item/fish/fish)
- RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(add_toxin))
+ . = ..()
+ RegisterSignal(fish, COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT, PROC_REF(make_venomous))
+ RegisterSignal(fish, COMSIG_FISH_STATUS_CHANGED, PROC_REF(on_status_change))
RegisterSignal(fish, COMSIG_FISH_EATEN_BY_OTHER_FISH, PROC_REF(on_eaten))
- add_to_reagents(fish, /datum/reagent/toxin/tetrodotoxin, 2.5)
-/datum/fish_trait/toxic/proc/add_toxin(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results)
- var/amount = source.grind_results[ /datum/reagent/toxin/tetrodotoxin] / length(results)
- for(var/atom/result as anything in results)
- result.reagents?.add_reagent(/datum/reagent/toxin/tetrodotoxin, amount)
+/datum/fish_trait/toxic/proc/make_venomous(obj/item/fish/source, new_size, new_weight)
+ SIGNAL_HANDLER
+ if(!HAS_TRAIT(source, TRAIT_FISH_STINGER))
+ return
+ add_venom(source, /datum/reagent/toxin/tetrodotoxin, new_weight, mult = source.status == FISH_DEAD ? 0.1 : 0.25)
+
+/datum/fish_trait/toxic/proc/on_status_change(obj/item/fish/source)
+ SIGNAL_HANDLER
+ if(!HAS_TRAIT(source, TRAIT_FISH_STINGER))
+ return
+ change_venom_on_death(source, /datum/reagent/toxin/tetrodotoxin, 0.25, 0.1)
/datum/fish_trait/toxic/proc/on_eaten(obj/item/fish/source, obj/item/fish/predator)
if(HAS_TRAIT(predator, TRAIT_FISH_TOXIN_IMMUNE))
@@ -388,6 +462,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
diff_traits_inheritability = 40
/datum/fish_trait/toxin_immunity/apply_to_fish(obj/item/fish/fish)
+ . = ..()
ADD_TRAIT(fish, TRAIT_FISH_TOXIN_IMMUNE, FISH_TRAIT_DATUM)
/datum/fish_trait/crossbreeder
@@ -398,6 +473,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
incompatible_traits = list(/datum/fish_trait/no_mating)
/datum/fish_trait/crossbreeder/apply_to_fish(obj/item/fish/fish)
+ . = ..()
ADD_TRAIT(fish, TRAIT_FISH_CROSSBREEDER, FISH_TRAIT_DATUM)
/datum/fish_trait/aggressive
@@ -407,6 +483,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
catalog_description = "This fish is aggressively territorial, and may attack fish that come close to it."
/datum/fish_trait/aggressive/apply_to_fish(obj/item/fish/fish)
+ . = ..()
RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(try_attack_fish))
/datum/fish_trait/aggressive/proc/try_attack_fish(obj/item/fish/source, seconds_per_tick)
@@ -431,6 +508,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
added_difficulty = 5
/datum/fish_trait/lubed/apply_to_fish(obj/item/fish/fish)
+ . = ..()
fish.AddComponent(/datum/component/slippery, 8 SECONDS, SLIDE|GALOSHES_DONT_HELP)
/datum/fish_trait/lubed/apply_to_mob(mob/living/basic/mob)
@@ -448,6 +526,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
catalog_description = "This fish has developed a primitive adaptation to life on both land and water."
/datum/fish_trait/amphibious/apply_to_fish(obj/item/fish/fish)
+ . = ..()
ADD_TRAIT(fish, TRAIT_FISH_AMPHIBIOUS, FISH_TRAIT_DATUM)
if(fish.required_fluid_type == AQUARIUM_FLUID_AIR)
fish.required_fluid_type = AQUARIUM_FLUID_FRESHWATER
@@ -460,6 +539,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
incompatible_traits = list(/datum/fish_trait/predator, /datum/fish_trait/necrophage)
/datum/fish_trait/mixotroph/apply_to_fish(obj/item/fish/fish)
+ . = ..()
ADD_TRAIT(fish, TRAIT_FISH_NO_HUNGER, FISH_TRAIT_DATUM)
/datum/fish_trait/antigrav
@@ -467,12 +547,13 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
inheritability = 75
diff_traits_inheritability = 25
catalog_description = "This fish will invert the gravity of the bait at random. May fall upward outside after being caught."
- added_difficulty = 15
+ added_difficulty = 20
/datum/fish_trait/antigrav/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/minigame)
minigame.special_effects |= FISHING_MINIGAME_RULE_ANTIGRAV
/datum/fish_trait/antigrav/apply_to_fish(obj/item/fish/fish)
+ . = ..()
fish.AddElement(/datum/element/forced_gravity, NEGATIVE_GRAVITY)
/datum/fish_trait/antigrav/apply_to_mob(mob/living/basic/mob)
@@ -489,6 +570,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
catalog_description = "This fish tends to die of stress when forced to be around too many other fish."
/datum/fish_trait/anxiety/apply_to_fish(obj/item/fish/fish)
+ . = ..()
RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(on_fish_life))
///signal sent when the anxiety fish is fed, killing it if sharing contents with too many fish.
@@ -511,24 +593,18 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
catalog_description = "This fish is electroreceptive, and will generate electric fields. Can be harnessed inside a bioelectric generator."
/datum/fish_trait/electrogenesis/apply_to_fish(obj/item/fish/fish)
+ . = ..()
ADD_TRAIT(fish, TRAIT_FISH_ELECTROGENESIS, FISH_TRAIT_DATUM)
- RegisterSignal(fish, COMSIG_ITEM_ATTACK, PROC_REF(on_item_attack))
+ RegisterSignal(fish, COMSIG_FISH_FORCE_UPDATED, PROC_REF(on_force_updated))
-/datum/fish_trait/electrogenesis/proc/on_item_attack(obj/item/fish/fish, mob/living/target, mob/living/user)
+/datum/fish_trait/electrogenesis/proc/on_force_updated(obj/item/fish/fish, weight_rank, bonus_or_malus)
SIGNAL_HANDLER
-
if(fish.status == FISH_ALIVE)
- fish.force = 16
+ fish.force += 10 - fish.w_class
fish.damtype = BURN
fish.attack_verb_continuous = list("shocks", "zaps")
fish.attack_verb_simple = list("shock", "zap")
fish.hitsound = 'sound/effects/sparks4.ogg'
- else
- fish.force = fish::force
- fish.damtype = fish::damtype
- fish.attack_verb_continuous = fish::attack_verb_continuous
- fish.attack_verb_simple = fish::attack_verb_simple
- fish.hitsound = fish::hitsound
/datum/fish_trait/electrogenesis/apply_to_mob(mob/living/basic/mob)
. = ..()
@@ -546,3 +622,101 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits())
/datum/fish_trait/stunted/apply_to_mob(mob/living/basic/mob)
. = ..()
qdel(mob.GetComponent(/datum/component/growth_and_differentiation))
+
+/datum/fish_trait/stinger
+ name = "Stinger"
+ inheritability = 80
+ diff_traits_inheritability = 35
+ catalog_description = "This fish is equipped with a sharp stringer or bill capable of delivering damage and toxins."
+ spontaneous_manifest_types = list(/obj/item/fish/stingray = 100, /obj/item/fish/swordfish = 100, /obj/item/fish/chainsawfish = 100)
+
+/datum/fish_trait/stinger/apply_to_fish(obj/item/fish/fish)
+ . = ..()
+ ADD_TRAIT(fish, TRAIT_FISH_STINGER, FISH_TRAIT_DATUM)
+ RegisterSignal(fish, COMSIG_FISH_FORCE_UPDATED, PROC_REF(on_force_updated))
+
+/datum/fish_trait/stinger/proc/on_force_updated(obj/item/fish/fish, weight_rank, bonus_or_malus)
+ SIGNAL_HANDLER
+ fish.force += 1 + fish.w_class + bonus_or_malus
+
+/datum/fish_trait/toxic_barbs
+ name = "Toxic Barbs"
+ catalog_description = "This fish' stinger, bill or otherwise, is coated with simple, yet effetive venom."
+ spontaneous_manifest_types = list(/obj/item/fish/stingray = 35)
+
+/datum/fish_trait/toxic_barbs/apply_to_fish(obj/item/fish/fish)
+ . = ..()
+ RegisterSignal(fish, COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT, PROC_REF(make_venomous))
+ RegisterSignal(fish, COMSIG_FISH_STATUS_CHANGED, PROC_REF(on_status_change))
+
+/datum/fish_trait/toxic_barbs/proc/make_venomous(obj/item/fish/source, new_size, new_weight)
+ SIGNAL_HANDLER
+ if(!HAS_TRAIT(source, TRAIT_FISH_STINGER))
+ ///Remove the trait from the fish so it doesn't show on the analyzer as it doesn't do anything on stingerless ones.
+ source.fish_traits -= type
+ UnregisterSignal(source, list(COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT, COMSIG_FISH_STATUS_CHANGED))
+ return
+ add_venom(source, /datum/reagent/toxin/venom, new_weight, mult = source.status == FISH_DEAD ? 0.3 : 0.7)
+
+/datum/fish_trait/toxic_barbs/proc/on_status_change(obj/item/fish/source)
+ SIGNAL_HANDLER
+ if(!HAS_TRAIT(source, TRAIT_FISH_STINGER))
+ return
+ change_venom_on_death(source, /datum/reagent/toxin/venom, 0.7, 0.3)
+
+/datum/fish_trait/ink
+ name = "Ink Production"
+ catalog_description = "This fish possess a sac that produces ink."
+ diff_traits_inheritability = 70
+ spontaneous_manifest_types = list(/obj/item/fish/squid = 35)
+
+/datum/fish_trait/ink/apply_to_fish(obj/item/fish/fish)
+ . = ..()
+ RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(on_process))
+ RegisterSignal(fish, COMSIG_ITEM_ATTACK_ZONE, PROC_REF(attacked_someone))
+
+/datum/fish_trait/ink/proc/attacked_someone(obj/item/fish/source, mob/living/target, mob/living/user, zone)
+ SIGNAL_HANDLER
+ if(HAS_TRAIT(source, TRAIT_FISH_INK_ON_COOLDOWN) || source.status == FISH_DEAD)
+ return
+ if(!iscarbon(target) || target.get_bodypart(BODY_ZONE_HEAD))
+ target.adjust_temp_blindness_up_to(4 SECONDS, 8 SECONDS)
+ target.adjust_confusion_up_to(1.5 SECONDS, 4 SECONDS)
+ target.AddComponent(/datum/component/face_decal/splat, \
+ color = COLOR_NEARLY_ALL_BLACK, \
+ memory_type = /datum/memory/witnessed_inking, \
+ mood_event_type = /datum/mood_event/inked, \
+ )
+ target.visible_message(span_warning("[target] is inked by [source]!"), span_userdanger("You've been inked by [source]!"))
+ playsound(target, SFX_DESECRATION, 50, TRUE)
+ ADD_TRAIT(source, TRAIT_FISH_INK_ON_COOLDOWN, FISH_TRAIT_DATUM)
+ addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_FISH_INK_ON_COOLDOWN, FISH_TRAIT_DATUM), 9 SECONDS)
+
+/datum/fish_trait/ink/proc/on_process(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results)
+ SIGNAL_HANDLER
+ new /obj/item/food/ink_sac(source.drop_location())
+
+/datum/fish_trait/camouflage
+ name = "Camouflage"
+ catalog_description = "This fish possess the ability to blend with its surroundings."
+ spontaneous_manifest_types = list(/obj/item/fish/squid = 35)
+
+/datum/fish_trait/camouflage/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/minigame)
+ minigame.special_effects |= FISHING_MINIGAME_RULE_CAMO
+
+/datum/fish_trait/camouflage/apply_to_fish(obj/item/fish/fish)
+ . = ..()
+ RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(fade_out))
+ RegisterSignals(fish, list(COMSIG_MOVABLE_MOVED, COMSIG_FISH_STATUS_CHANGED), PROC_REF(reset_alpha))
+
+/datum/fish_trait/camouflage/proc/fade_out(obj/item/fish/source, seconds_per_tick)
+ SIGNAL_HANDLER
+ if(source.status == FISH_DEAD || source.last_move + 5 SECONDS >= world.time)
+ return
+ source.alpha = max(source.alpha - 10 * seconds_per_tick, 10)
+
+/datum/fish_trait/camouflage/proc/reset_alpha(obj/item/fish/source)
+ SIGNAL_HANDLER
+ var/init_alpha = initial(source.alpha)
+ if(init_alpha != source.alpha)
+ animate(source.alpha, alpha = init_alpha, time = 1.2 SECONDS, easing = CIRCULAR_EASING|EASE_OUT)
diff --git a/code/modules/fishing/fish/fish_types.dm b/code/modules/fishing/fish/fish_types.dm
deleted file mode 100644
index ce9f36f0553d6..0000000000000
--- a/code/modules/fishing/fish/fish_types.dm
+++ /dev/null
@@ -1,797 +0,0 @@
-// Freshwater fish
-
-/obj/item/fish/goldfish
- name = "goldfish"
- desc = "Despite common belief, goldfish do not have three-second memories. \
- They can actually remember things that happened up to three months ago."
- icon_state = "goldfish"
- sprite_width = 8
- sprite_height = 8
- stable_population = 3
- average_size = 30
- average_weight = 500
- favorite_bait = list(/obj/item/food/bait/worm)
- required_temperature_min = MIN_AQUARIUM_TEMP+18
- required_temperature_max = MIN_AQUARIUM_TEMP+26
-
-/obj/item/fish/goldfish/gill
- name = "McGill"
- desc = "A great rubber duck tool for Lawyers who can't get a grasp over their case."
- stable_population = 1
- random_case_rarity = FISH_RARITY_NOPE
- show_in_catalog = FALSE
- beauty = FISH_BEAUTY_GOOD
-
-/obj/item/fish/angelfish
- name = "angelfish"
- desc = "Young Angelfish often live in groups, while adults prefer solitary life. They become territorial and aggressive toward other fish when they reach adulthood."
- icon_state = "angelfish"
- dedicated_in_aquarium_icon_state = "bigfish"
- sprite_height = 7
- source_height = 7
- average_size = 30
- average_weight = 500
- stable_population = 3
- fish_traits = list(/datum/fish_trait/aggressive)
- required_temperature_min = MIN_AQUARIUM_TEMP+22
- required_temperature_max = MIN_AQUARIUM_TEMP+30
-
-/obj/item/fish/guppy
- name = "guppy"
- desc = "Guppy is also known as rainbow fish because of the brightly colored body and fins."
- icon_state = "guppy"
- dedicated_in_aquarium_icon_state = "fish_greyscale"
- aquarium_vc_color = "#91AE64"
- sprite_width = 8
- sprite_height = 5
- average_size = 30
- average_weight = 500
- stable_population = 6
- required_temperature_min = MIN_AQUARIUM_TEMP+20
- required_temperature_max = MIN_AQUARIUM_TEMP+28
-
-/obj/item/fish/plasmatetra
- name = "plasma tetra"
- desc = "Due to their small size, tetras are prey to many predators in their watery world, including eels, crustaceans, and invertebrates."
- icon_state = "plastetra"
- dedicated_in_aquarium_icon_state = "fish_greyscale"
- aquarium_vc_color = "#D30EB0"
- average_size = 30
- average_weight = 500
- stable_population = 3
- required_temperature_min = MIN_AQUARIUM_TEMP+20
- required_temperature_max = MIN_AQUARIUM_TEMP+28
-
-/obj/item/fish/catfish
- name = "cory catfish"
- desc = "A catfish has about 100,000 taste buds, and their bodies are covered with them to help detect chemicals present in the water and also to respond to touch."
- icon_state = "catfish"
- dedicated_in_aquarium_icon_state = "fish_greyscale"
- aquarium_vc_color = "#907420"
- average_size = 100
- average_weight = 2000
- stable_population = 3
- favorite_bait = list(
- list(
- "Type" = "Foodtype",
- "Value" = JUNKFOOD
- )
- )
- required_temperature_min = MIN_AQUARIUM_TEMP+12
- required_temperature_max = MIN_AQUARIUM_TEMP+30
- beauty = FISH_BEAUTY_GOOD
-
-/obj/item/fish/tadpole
- name = "tadpole"
- desc = "The larval spawn of an amphibian. A very minuscle, round creature with a long tail it uses to swim around."
- icon_state = "tadpole"
- dedicated_in_aquarium_icon_state = "tadpole small"
- average_size = 3
- average_weight = 10
- sprite_width = 3
- sprite_height = 1
- health = 50
- feeding_frequency = 1.5 MINUTES
- required_temperature_min = MIN_AQUARIUM_TEMP+15
- required_temperature_max = MIN_AQUARIUM_TEMP+20
- fillet_type = null
- fish_traits = list(/datum/fish_trait/no_mating) //They grow into frogs and that's it.
- beauty = FISH_BEAUTY_NULL
- random_case_rarity = FISH_RARITY_NOPE //Why would you want generic frog tadpoles you get from ponds inside fish cases?
- /// Once dead, tadpoles disappear after a dozen seconds, since you can get infinite tadpoles.
- var/del_timerid
-
-/obj/item/fish/tadpole/Initialize(mapload, apply_qualities = TRUE)
- . = ..()
- AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, 100 / rand(2.5, 3 MINUTES) * 10)
- RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks))
- RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth))
-
-/obj/item/fish/tadpole/set_status(new_status)
- . = ..()
- if(status == FISH_DEAD)
- del_timerid = QDEL_IN_STOPPABLE(src, 12 SECONDS)
- else
- deltimer(del_timerid)
-
-/obj/item/fish/tadpole/proc/growth_checks(datum/source, seconds_per_tick)
- SIGNAL_HANDLER
- var/hunger = CLAMP01((world.time - last_feeding) / feeding_frequency)
- if(hunger >= 0.7) //too hungry to grow
- return COMPONENT_DONT_GROW
- var/obj/structure/aquarium/aquarium = loc
- if(!aquarium.allow_breeding) //the aquarium has breeding disabled
- return COMPONENT_DONT_GROW
-
-/obj/item/fish/tadpole/proc/on_growth(datum/source, mob/living/basic/frog/result)
- SIGNAL_HANDLER
- playsound(result, result.attack_sound, 50, TRUE) // reeeeeeeeeeeeeee...
-
-/obj/item/fish/tadpole/get_export_price(price, percent)
- return 2 //two credits. Tadpoles aren't really that valueable.
-
-// Saltwater fish below
-
-/obj/item/fish/clownfish
- name = "clownfish"
- desc = "Clownfish catch prey by swimming onto the reef, attracting larger fish, and luring them back to the anemone. The anemone will sting and eat the larger fish, leaving the remains for the clownfish."
- icon_state = "clownfish"
- dedicated_in_aquarium_icon_state = "clownfish_small"
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- sprite_width = 8
- sprite_height = 5
- average_size = 30
- average_weight = 500
- stable_population = 4
- fish_traits = list(/datum/fish_trait/picky_eater)
- evolution_types = list(/datum/fish_evolution/lubefish)
- compatible_types = list(/obj/item/fish/clownfish/lube)
- required_temperature_min = MIN_AQUARIUM_TEMP+22
- required_temperature_max = MIN_AQUARIUM_TEMP+30
-
-/obj/item/fish/clownfish/lube
- name = "lubefish"
- desc = "A clownfish exposed to cherry-flavored lube for far too long. First discovered the days following a cargo incident around the seas of Europa, when thousands of thousands of thousands..."
- icon_state = "lubefish"
- random_case_rarity = FISH_RARITY_VERY_RARE
- dedicated_in_aquarium_icon_state = "lubefish_small"
- fish_traits = list(/datum/fish_trait/picky_eater, /datum/fish_trait/lubed)
- evolution_types = null
- compatible_types = list(/obj/item/fish/clownfish)
- food = /datum/reagent/lube
- beauty = FISH_BEAUTY_GREAT
-
-/obj/item/fish/cardinal
- name = "cardinalfish"
- desc = "Cardinalfish are often found near sea urchins, where the fish hide when threatened."
- icon_state = "cardinalfish"
- dedicated_in_aquarium_icon_state = "fish_greyscale"
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- average_size = 30
- average_weight = 500
- stable_population = 4
- fish_traits = list(/datum/fish_trait/vegan)
- required_temperature_min = MIN_AQUARIUM_TEMP+22
- required_temperature_max = MIN_AQUARIUM_TEMP+30
-
-/obj/item/fish/greenchromis
- name = "green chromis"
- desc = "The Chromis can vary in color from blue to green depending on the lighting and distance from the lights."
- icon_state = "greenchromis"
- dedicated_in_aquarium_icon_state = "fish_greyscale"
- aquarium_vc_color = "#00ff00"
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- average_size = 30
- average_weight = 500
- stable_population = 5
- required_temperature_min = MIN_AQUARIUM_TEMP+23
- required_temperature_max = MIN_AQUARIUM_TEMP+28
-
- fishing_difficulty_modifier = 5 // Bit harder
-
-/obj/item/fish/firefish
- name = "firefish goby"
- desc = "To communicate in the wild, the firefish uses its dorsal fin to alert others of potential danger."
- icon_state = "firefish"
- sprite_width = 6
- sprite_height = 5
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- average_size = 30
- average_weight = 500
- stable_population = 3
- disliked_bait = list(/obj/item/food/bait/worm, /obj/item/food/bait/doughball)
- fish_ai_type = FISH_AI_ZIPPY
- required_temperature_min = MIN_AQUARIUM_TEMP+23
- required_temperature_max = MIN_AQUARIUM_TEMP+28
-
-/obj/item/fish/pufferfish
- name = "pufferfish"
- desc = "They say that one pufferfish contains enough toxins to kill 30 people, although in the last few decades they've been genetically engineered en masse to be less poisonous."
- icon_state = "pufferfish"
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- sprite_width = 8
- sprite_height = 8
- average_size = 60
- average_weight = 1000
- stable_population = 3
- required_temperature_min = MIN_AQUARIUM_TEMP+23
- required_temperature_max = MIN_AQUARIUM_TEMP+28
- fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/toxic)
- beauty = FISH_BEAUTY_GOOD
-
-
-/obj/item/fish/lanternfish
- name = "lanternfish"
- desc = "Typically found in areas below 6600 feet below the surface of the ocean, they live in complete darkness."
- icon_state = "lanternfish"
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- random_case_rarity = FISH_RARITY_VERY_RARE
- source_width = 28
- source_height = 21
- sprite_width = 8
- sprite_height = 8
- average_size = 100
- average_weight = 1500
- stable_population = 3
- fish_traits = list(/datum/fish_trait/nocturnal)
- required_temperature_min = MIN_AQUARIUM_TEMP+2 //My source is that the water at a depth 6600 feet is pretty darn cold.
- required_temperature_max = MIN_AQUARIUM_TEMP+18
- beauty = FISH_BEAUTY_NULL
-
-//Tiziran Fish
-/obj/item/fish/dwarf_moonfish
- name = "dwarf moonfish"
- desc = "Ordinarily in the wild, the Zagoskian moonfish is around the size of a tuna, however through selective breeding a smaller breed suitable for being kept as an aquarium pet has been created."
- icon_state = "dwarf_moonfish"
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- stable_population = 2
- fillet_type = /obj/item/food/fishmeat/moonfish
- average_size = 100
- average_weight = 2000
- required_temperature_min = MIN_AQUARIUM_TEMP+20
- required_temperature_max = MIN_AQUARIUM_TEMP+30
- beauty = FISH_BEAUTY_GOOD
-
-/obj/item/fish/gunner_jellyfish
- name = "gunner jellyfish"
- desc = "So called due to their resemblance to an artillery shell, the gunner jellyfish is native to Tizira, where it is enjoyed as a delicacy. Produces a mild hallucinogen that is destroyed by cooking."
- icon_state = "gunner_jellyfish"
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- stable_population = 4
- fillet_type = /obj/item/food/fishmeat/gunner_jellyfish
- required_temperature_min = MIN_AQUARIUM_TEMP+24
- required_temperature_max = MIN_AQUARIUM_TEMP+32
- beauty = FISH_BEAUTY_GOOD
-
-/obj/item/fish/needlefish
- name = "needlefish"
- desc = "A tiny, transparent fish which resides in large schools in the oceans of Tizira. A common food for other, larger fish."
- icon_state = "needlefish"
- dedicated_in_aquarium_icon_state = "needlefish_small"
- sprite_width = 7
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- stable_population = 12
- fillet_type = null
- average_size = 20
- average_weight = 300
- fish_traits = list(/datum/fish_trait/carnivore)
- required_temperature_min = MIN_AQUARIUM_TEMP+10
- required_temperature_max = MIN_AQUARIUM_TEMP+32
-
-/obj/item/fish/armorfish
- name = "armorfish"
- desc = "A small shellfish native to Tizira's oceans, known for its exceptionally hard shell. Consumed similarly to prawns."
- icon_state = "armorfish"
- dedicated_in_aquarium_icon_state = "armorfish_small"
- sprite_height = 5
- sprite_width = 6
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- stable_population = 10
- fillet_type = /obj/item/food/fishmeat/armorfish
- fish_ai_type = FISH_AI_SLOW
- required_temperature_min = MIN_AQUARIUM_TEMP+10
- required_temperature_max = MIN_AQUARIUM_TEMP+32
-
-/// Commonly found on the mining fishing spots. Can be grown into lobstrosities
-/obj/item/fish/chasm_crab
- name = "chasm chrab"
- desc = "The young of the lobstrosity mature in pools below the earth, eating what falls in until large enough to clamber out. Those found near the station are well-fed."
- icon_state = "chrab"
- dedicated_in_aquarium_icon_state = "chrab_small"
- sprite_height = 9
- sprite_width = 8
- stable_population = 4
- feeding_frequency = 10 MINUTES
- random_case_rarity = FISH_RARITY_RARE
- fillet_type = /obj/item/food/meat/slab/rawcrab
- required_temperature_min = MIN_AQUARIUM_TEMP+9
- required_temperature_max = LAVALAND_MAX_TEMPERATURE+50
- min_pressure = HAZARD_LOW_PRESSURE
- safe_air_limits = list(
- /datum/gas/oxygen = list(2, 100),
- /datum/gas/nitrogen,
- /datum/gas/carbon_dioxide = list(0, 20),
- /datum/gas/water_vapor,
- /datum/gas/plasma = list(0, 5),
- /datum/gas/bz = list(0, 5),
- /datum/gas/miasma = list(0, 5),
- )
- evolution_types = list(/datum/fish_evolution/ice_chrab)
- compatible_types = list(/obj/item/fish/chasm_crab/ice)
- beauty = FISH_BEAUTY_GOOD
- ///This value represents how much the crab needs aren't being met. Higher values translate to a more likely hostile lobstrosity.
- var/anger = 0
- ///The lobstrosity type this matures into
- var/lob_type = /mob/living/basic/mining/lobstrosity/juvenile/lava
- ///at which rate the crab gains maturation
- var/growth_rate = 100 / (10 MINUTES) * 10
-
-/obj/item/fish/chasm_crab/Initialize(mapload, apply_qualities = TRUE)
- . = ..()
- RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks))
- RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth))
-
-///A chasm crab growth speed is determined by its initial weight and size, ergo bigger crabs for faster lobstrosities
-/obj/item/fish/chasm_crab/update_size_and_weight(new_size = average_size, new_weight = average_weight)
- . = ..()
- var/multiplier = 1
- switch(size)
- if(0 to FISH_SIZE_TINY_MAX)
- multiplier -= 0.2
- if(FISH_SIZE_SMALL_MAX to FISH_SIZE_NORMAL_MAX)
- multiplier += 0.2
- if(FISH_SIZE_NORMAL_MAX to FISH_SIZE_BULKY_MAX)
- multiplier += 0.5
- if(FISH_SIZE_BULKY_MAX to INFINITY)
- multiplier += 0.8
-
- if(weight <= 800)
- multiplier -= 0.1 * round((1000 - weight) / 200)
- else if(weight >= 1500)
- multiplier += min(0.1 * round((weight - 1000) / 500), 2)
-
- AddComponent(/datum/component/fish_growth, lob_type, initial(growth_rate) * multiplier)
-
-/obj/item/fish/chasm_crab/proc/growth_checks(datum/source, seconds_per_tick)
- SIGNAL_HANDLER
- var/hunger = CLAMP01((world.time - last_feeding) / feeding_frequency)
- if(health <= initial(health) * 0.6 || hunger >= 0.6) //if too hurt or hungry, don't grow.
- anger += growth_rate * 2 * seconds_per_tick
- return COMPONENT_DONT_GROW
-
- if(hunger >= 0.4) //I'm hungry and angry
- anger += growth_rate * 0.6 * seconds_per_tick
-
- if(!isaquarium(loc))
- return
-
- var/obj/structure/aquarium/aquarium = loc
- if(!aquarium.allow_breeding) //the aquarium has breeding disabled
- return COMPONENT_DONT_GROW
- if(!locate(/obj/item/aquarium_prop) in aquarium) //the aquarium deco is quite barren
- anger += growth_rate * 0.25 * seconds_per_tick
- var/fish_count = length(aquarium.get_fishes())
- if(!ISINRANGE(fish_count, 3, AQUARIUM_MAX_BREEDING_POPULATION * 0.5)) //too lonely or overcrowded
- anger += growth_rate * 0.3 * seconds_per_tick
- if(fish_count > AQUARIUM_MAX_BREEDING_POPULATION * 0.5) //check if there's enough room to maturate.
- return COMPONENT_DONT_GROW
-
-/obj/item/fish/chasm_crab/proc/on_growth(datum/source, mob/living/basic/mining/lobstrosity/juvenile/result)
- SIGNAL_HANDLER
- if(!prob(anger))
- result.AddElement(/datum/element/ai_retaliate)
- qdel(result.ai_controller)
- result.ai_controller = new /datum/ai_controller/basic_controller/lobstrosity/juvenile/calm(result)
- else if(anger < 30) //not really that mad, just a bit unstable.
- qdel(result.ai_controller)
- result.ai_controller = new /datum/ai_controller/basic_controller/lobstrosity/juvenile/capricious(result)
-
-/obj/item/fish/chasm_crab/ice
- name = "arctic chrab"
- desc = "A subspecies of chasm chrabs that has adapted to the cold climate and lack of abysmal holes of the icemoon."
- icon_state = "arctic_chrab"
- dedicated_in_aquarium_icon_state = "arctic_chrab_small"
- required_temperature_min = ICEBOX_MIN_TEMPERATURE-20
- required_temperature_max = MIN_AQUARIUM_TEMP+15
- evolution_types = list(/datum/fish_evolution/chasm_chrab)
- compatible_types = list(/obj/item/fish/chasm_crab)
- beauty = FISH_BEAUTY_GREAT
- lob_type = /mob/living/basic/mining/lobstrosity/juvenile
-
-/obj/item/fish/donkfish
- name = "donk co. company patent donkfish"
- desc = "A lab-grown donkfish. Its invention was an accident for the most part, as it was intended to be consumed in donk pockets. Unfortunately, it tastes horrible, so it has now become a pseudo-mascot."
- icon_state = "donkfish"
- random_case_rarity = FISH_RARITY_VERY_RARE
- required_fluid_type = AQUARIUM_FLUID_FRESHWATER
- stable_population = 4
- fillet_type = /obj/item/food/fishmeat/donkfish
- fish_traits = list(/datum/fish_trait/yucky)
- required_temperature_min = MIN_AQUARIUM_TEMP+15
- required_temperature_max = MIN_AQUARIUM_TEMP+28
- beauty = FISH_BEAUTY_EXCELLENT
-
-/obj/item/fish/emulsijack
- name = "toxic emulsijack"
- desc = "Ah, the terrifying emulsijack. Created in a laboratory, the only real use of this slimey, scaleless fish is for completely ruining a tank."
- icon_state = "emulsijack"
- random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS
- required_fluid_type = AQUARIUM_FLUID_ANADROMOUS
- stable_population = 3
- fish_traits = list(/datum/fish_trait/emulsijack)
- required_temperature_min = MIN_AQUARIUM_TEMP+5
- required_temperature_max = MIN_AQUARIUM_TEMP+40
- beauty = FISH_BEAUTY_BAD
-
-/obj/item/fish/jumpercable
- name = "monocloning jumpercable"
- desc = "A surprisingly useful if nasty looking creation from the syndicate fish labs. Drop one in a tank, and \
- watch it self-feed and multiply. Generates more and more power as a growing swarm!"
- icon_state = "jumpercable"
- dedicated_in_aquarium_icon_state = "jumpercable_small"
- sprite_width = 17
- sprite_height = 5
- stable_population = 12
- average_size = 110
- average_weight = 6000
- random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS
- required_temperature_min = MIN_AQUARIUM_TEMP+10
- required_temperature_max = MIN_AQUARIUM_TEMP+30
- favorite_bait = list(/obj/item/stock_parts/power_store/cell/lead)
- fish_traits = list(
- /datum/fish_trait/parthenogenesis,
- /datum/fish_trait/mixotroph,
- /datum/fish_trait/electrogenesis,
- )
- beauty = FISH_BEAUTY_UGLY
-
-/obj/item/fish/ratfish
- name = "ratfish"
- desc = "A rat exposed to the murky waters of maintenance too long. Any higher power, if it revealed itself, would state that the ratfish's continued existence is extremely unwelcome."
- icon_state = "ratfish"
- random_case_rarity = FISH_RARITY_RARE
- required_fluid_type = AQUARIUM_FLUID_FRESHWATER
- stable_population = 10 //set by New, but this is the default config value
- fillet_type = /obj/item/food/meat/slab/human/mutant/zombie //eww...
- fish_traits = list(/datum/fish_trait/necrophage)
- required_temperature_min = MIN_AQUARIUM_TEMP+15
- required_temperature_max = MIN_AQUARIUM_TEMP+35
- fish_ai_type = FISH_AI_ZIPPY
- favorite_bait = list(
- list(
- "Type" = "Foodtype",
- "Value" = DAIRY
- )
- )
- beauty = FISH_BEAUTY_DISGUSTING
-
-/obj/item/fish/ratfish/Initialize(mapload, apply_qualities = TRUE)
- . = ..()
- //stable pop reflects the config for how many mice migrate. powerful...
- stable_population = CONFIG_GET(number/mice_roundstart)
-
-/obj/item/fish/sludgefish
- name = "sludgefish"
- desc = "A misshapen, fragile, loosely fish-like living goop, the only thing that'd ever thrive in the acidic and claustrophobic cavities of the station's organic waste disposal system."
- icon_state = "sludgefish"
- dedicated_in_aquarium_icon_state = "sludgefish_small"
- sprite_width = 7
- sprite_height = 6
- required_fluid_type = AQUARIUM_FLUID_SULPHWATEVER
- stable_population = 8
- average_size = 20
- average_weight = 400
- health = 50
- breeding_timeout = 2.5 MINUTES
- fish_traits = list(/datum/fish_trait/parthenogenesis, /datum/fish_trait/no_mating)
- required_temperature_min = MIN_AQUARIUM_TEMP+10
- required_temperature_max = MIN_AQUARIUM_TEMP+40
- evolution_types = list(/datum/fish_evolution/purple_sludgefish)
- beauty = FISH_BEAUTY_NULL
-
-/obj/item/fish/sludgefish/purple
- name = "purple sludgefish"
- desc = "A misshapen, fragile, loosely fish-like living goop. This one has developed sexual reproduction mechanisms, and a purple tint to boot."
- icon_state = "sludgefish_purple"
- dedicated_in_aquarium_icon_state = "sludgefish_purple_small"
- random_case_rarity = FISH_RARITY_NOPE
- fish_traits = list(/datum/fish_trait/parthenogenesis)
-
-/obj/item/fish/slimefish
- name = "acquatic slime"
- desc = "Kids, this is what happens when a slime overcomes its hydrophobic nature. It goes glug glug."
- icon_state = "slimefish"
- icon_state_dead = "slimefish_dead"
- dedicated_in_aquarium_icon_state = "slimefish_small"
- sprite_width = 7
- sprite_height = 7
- do_flop_animation = FALSE //it already has a cute bouncy wiggle. :3
- random_case_rarity = FISH_RARITY_VERY_RARE
- required_fluid_type = AQUARIUM_FLUID_ANADROMOUS
- stable_population = 4
- health = 150
- fillet_type = /obj/item/slime_extract/grey
- grind_results = list(/datum/reagent/toxin/slimejelly = 10)
- fish_traits = list(/datum/fish_trait/toxin_immunity, /datum/fish_trait/crossbreeder)
- favorite_bait = list(
- list(
- "Type" = "Foodtype",
- "Value" = TOXIC,
- ),
- list(
- "Type" = "Reagent",
- "Value" = /datum/reagent/toxin,
- "Amount" = 5,
- ),
- )
- required_temperature_min = MIN_AQUARIUM_TEMP+20
- beauty = FISH_BEAUTY_GREAT
-
-/obj/item/fish/boned
- name = "unmarine bonemass"
- desc = "What one could mistake for fish remains, is in reality a species that chose to discard its weak flesh a long time ago. A living fossil, in its most literal sense."
- icon_state = "bonemass"
- dedicated_in_aquarium_icon_state = "bonemass_small"
- sprite_width = 10
- sprite_height = 7
- fish_ai_type = FISH_AI_ZIPPY
- random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS
- required_fluid_type = AQUARIUM_FLUID_ANY_WATER
- min_pressure = HAZARD_LOW_PRESSURE
- health = 150
- stable_population = 3
- grind_results = list(/datum/reagent/bone_dust = 10)
- fillet_type = /obj/item/stack/sheet/bone
- num_fillets = 2
- fish_traits = list(/datum/fish_trait/revival, /datum/fish_trait/carnivore)
- average_size = 70
- average_weight = 2000
- death_text = "%SRC stops moving." //It's dead... or is it?
- evolution_types = list(/datum/fish_evolution/mastodon)
- beauty = FISH_BEAUTY_UGLY
-
-/obj/item/fish/mastodon
- name = "unmarine mastodon"
- desc = "A monster of exposed muscles and innards, wrapped in a fish-like skeleton. You don't remember ever seeing it on the catalog."
- icon = 'icons/obj/aquarium/wide.dmi'
- icon_state = "mastodon"
- dedicated_in_aquarium_icon = 'icons/obj/aquarium/fish.dmi'
- dedicated_in_aquarium_icon_state = "mastodon_small"
- base_pixel_x = -16
- pixel_x = -16
- sprite_width = 12
- sprite_height = 7
- show_in_catalog = FALSE
- random_case_rarity = FISH_RARITY_NOPE
- fishing_difficulty_modifier = 5
- required_fluid_type = AQUARIUM_FLUID_ANY_WATER
- min_pressure = HAZARD_LOW_PRESSURE
- health = 300
- stable_population = 2 //This means they can only crossbreed.
- grind_results = list(/datum/reagent/bone_dust = 5, /datum/reagent/consumable/liquidgibs = 5)
- fillet_type = /obj/item/stack/sheet/bone
- num_fillets = 2
- feeding_frequency = 2 MINUTES
- breeding_timeout = 10 MINUTES
- average_size = 180
- average_weight = 5000
- death_text = "%SRC stops moving."
- fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/amphibious, /datum/fish_trait/revival, /datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/aggressive)
- beauty = FISH_BEAUTY_BAD
-
-/obj/item/fish/holo
- name = "holographic goldfish"
- desc = "A holographic representation of a common goldfish, slowly flickering out, removed from its holo-habitat."
- icon_state = "goldfish"
- show_in_catalog = FALSE
- random_case_rarity = FISH_RARITY_NOPE
- sprite_width = 8
- sprite_height = 8
- stable_population = 1
- average_size = 30
- average_weight = 500
- required_fluid_type = AQUARIUM_FLUID_ANADROMOUS
- grind_results = null
- fillet_type = null
- death_text = "%SRC gently disappears."
- fish_traits = list(/datum/fish_trait/no_mating) //just to be sure, these shouldn't reproduce
- experisci_scannable = FALSE
-
-/obj/item/fish/holo/Initialize(mapload, apply_qualities = TRUE)
- . = ..()
- var/area/station/holodeck/holo_area = get_area(src)
- if(!istype(holo_area))
- addtimer(CALLBACK(src, PROC_REF(set_status), FISH_DEAD), 1 MINUTES)
- return
- holo_area.linked.add_to_spawned(src)
-
-/obj/item/fish/holo/set_status(new_status)
- . = ..()
- if(status == FISH_DEAD)
- animate(src, alpha = 0, 3 SECONDS, easing = SINE_EASING)
- QDEL_IN(src, 3 SECONDS)
-
-/obj/item/fish/holo/crab
- name = "holographic crab"
- desc = "A holographic represantion of a soul-crushingly soulless crab, unlike the cuter ones occasionally roaming around. It stares at you, with empty, beady eyes."
- icon_state = "crab"
- dedicated_in_aquarium_icon_state = "crab_small"
- average_weight = 1000
- sprite_height = 6
- sprite_width = 10
-
-/obj/item/fish/holo/puffer
- name = "holographic pufferfish"
- desc ="A holographic representation of 100% safe-to-eat pufferfish... that is, if holographic fishes were even edible."
- icon_state = "pufferfish"
- sprite_width = 8
- sprite_height = 8
- average_size = 60
- average_weight = 1000
- beauty = FISH_BEAUTY_GOOD
-
-/obj/item/fish/holo/angel
- name = "holographic angelfish"
- desc = "A holographic representation of a angelfish. I got nothing snarky to say about this one."
- icon_state = "angelfish"
- dedicated_in_aquarium_icon_state = "bigfish"
- sprite_height = 7
-
-/obj/item/fish/holo/clown
- name = "holographic clownfish"
- icon_state = "holo_clownfish"
- desc = "A holographic representation of a clownfish, or at least how they used to look like five centuries ago."
- dedicated_in_aquarium_icon_state = "holo_clownfish_small"
- required_fluid_type = AQUARIUM_FLUID_SALTWATER
- sprite_width = 8
- sprite_height = 5
-
-/obj/item/fish/holo/checkered
- name = "unrendered holographic fish"
- desc = "A checkered silhoutte of searing purple and pitch black presents itself before your eyes, like a tear in fabric of reality. It hurts to watch."
- icon_state = "checkered" //it's a meta joke, buddy.
- dedicated_in_aquarium_icon_state = "checkered_small"
- sprite_width = 4
- beauty = FISH_BEAUTY_NULL
-
-/obj/item/fish/holo/halffish
- name = "holographic half-fish"
- desc = "A holographic representation of... a fish reduced to all bones, except for its head. Isn't it supposed to be dead? Ehr, holo-dead?"
- icon_state = "half_fish"
- dedicated_in_aquarium_icon_state = "half_fish_small"
- sprite_height = 4
- sprite_width = 10
- average_size = 50
- beauty = FISH_BEAUTY_UGLY
-
-/obj/item/fish/starfish
- name = "cosmostarfish"
- desc = "A peculiar, gravity-defying, echinoderm-looking critter from hyperspace."
- icon_state = "starfish"
- dedicated_in_aquarium_icon_state = "starfish_small"
- icon_state_dead = "starfish_dead"
- sprite_width = 4
- average_size = 30
- average_weight = 300
- stable_population = 3
- required_fluid_type = AQUARIUM_FLUID_AIR
- random_case_rarity = FISH_RARITY_NOPE
- required_temperature_min = 0
- required_temperature_max = INFINITY
- safe_air_limits = null
- min_pressure = 0
- max_pressure = INFINITY
- grind_results = list(/datum/reagent/bluespace = 10)
- fillet_type = null
- fish_traits = list(/datum/fish_trait/antigrav, /datum/fish_trait/mixotroph)
- beauty = FISH_BEAUTY_GREAT
-
-/obj/item/fish/starfish/Initialize(mapload, apply_qualities = TRUE)
- . = ..()
- update_appearance(UPDATE_OVERLAYS)
-
-/obj/item/fish/starfish/update_overlays()
- . = ..()
- if(status == FISH_ALIVE)
- . += emissive_appearance(icon, "starfish_emissive", src)
-
-///It spins, and dimly glows in the dark.
-/obj/item/fish/starfish/flop_animation()
- DO_FLOATING_ANIM(src)
-
-/obj/item/fish/lavaloop
- name = "lavaloop fish"
- desc = "Due to its curvature, it can be used as make-shift boomerang."
- icon_state = "lava_loop"
- sprite_width = 3
- sprite_height = 5
- average_size = 30
- average_weight = 500
- resistance_flags = FIRE_PROOF | LAVA_PROOF
- required_fluid_type = AQUARIUM_FLUID_ANY_WATER //if we can survive hot lava and freezing plasrivers, we can survive anything
- fish_ai_type = FISH_AI_ZIPPY
- min_pressure = HAZARD_LOW_PRESSURE
- required_temperature_min = MIN_AQUARIUM_TEMP+30
- required_temperature_max = MIN_AQUARIUM_TEMP+35
- aquarium_vc_color = "#ce7e1d"
- fish_traits = list(
- /datum/fish_trait/carnivore,
- /datum/fish_trait/heavy,
- )
- hitsound = null
- throwforce = 5
- beauty = FISH_BEAUTY_GOOD
- ///maximum bonus damage when winded up
- var/maximum_bonus = 25
-
-/obj/item/fish/lavaloop/Initialize(mapload, apply_qualities = TRUE)
- . = ..()
- ADD_TRAIT(src, TRAIT_BYPASS_RANGED_ARMOR, INNATE_TRAIT)
- AddComponent(/datum/component/boomerang, throw_range, TRUE)
- AddComponent(\
- /datum/component/throwbonus_on_windup,\
- maximum_bonus = maximum_bonus,\
- windup_increment_speed = 2,\
- throw_text = "starts cooking in your hands, it may explode soon!",\
- pass_maximum_callback = CALLBACK(src, PROC_REF(explode_on_user)),\
- apply_bonus_callback = CALLBACK(src, PROC_REF(on_fish_land)),\
- sound_on_success = 'sound/weapons/parry.ogg',\
- effect_on_success = /obj/effect/temp_visual/guardian/phase,\
- )
-
-/obj/item/fish/lavaloop/proc/explode_on_user(mob/living/user)
- var/obj/item/bodypart/arm/active_arm = user.get_active_hand()
- active_arm?.dismember()
- to_chat(user, span_warning("[src] explodes!"))
- playsound(src, 'sound/effects/explosion1.ogg', 40, TRUE)
- user.flash_act(1, 1)
- qdel(src)
-
-/obj/item/fish/lavaloop/proc/on_fish_land(mob/living/target, bonus_value)
- if(!istype(target))
- return FALSE
- return (target.mob_size >= MOB_SIZE_LARGE)
-
-/obj/item/fish/lavaloop/plasma_river
- maximum_bonus = 30
-
-/obj/item/fish/lavaloop/plasma_river/explode_on_user(mob/living/user)
- playsound(src, 'sound/effects/explosion1.ogg', 40, TRUE)
- user.flash_act(1, 1)
- user.apply_status_effect(/datum/status_effect/ice_block_talisman, 5 SECONDS)
- qdel(src)
-
-/obj/item/fish/lavaloop/plasma_river/on_fish_land(mob/living/target, bonus_value)
- if(!istype(target))
- return FALSE
- if(target.mob_size < MOB_SIZE_LARGE)
- return FALSE
- var/freeze_timer = (bonus_value * 0.1)
- if(freeze_timer <= 0)
- return FALSE
- target.apply_status_effect(/datum/status_effect/ice_block_talisman, freeze_timer SECONDS)
- return FALSE
-
-/obj/item/fish/zipzap
- name = "anxious zipzap"
- desc = "A fish overflowing with crippling anxiety and electric potential. Worried about the walls of its tank closing in constantly. Both literally and as a general metaphorical unease about life's direction."
- icon_state = "zipzap"
- icon_state_dead = "zipzap_dead"
- sprite_width = 8
- sprite_height = 8
- stable_population = 3
- average_size = 30
- average_weight = 500
- random_case_rarity = FISH_RARITY_VERY_RARE
- favorite_bait = list(/obj/item/stock_parts/power_store/cell/lead)
- required_temperature_min = MIN_AQUARIUM_TEMP+18
- required_temperature_max = MIN_AQUARIUM_TEMP+26
- fish_traits = list(
- /datum/fish_trait/no_mating,
- /datum/fish_trait/wary,
- /datum/fish_trait/anxiety,
- /datum/fish_trait/electrogenesis,
- )
- //anxiety naturally limits the amount of zipzaps per tank, so they are stronger alone
- electrogenesis_power = 20 MEGA JOULES
- beauty = FISH_BEAUTY_GOOD
diff --git a/code/modules/fishing/fish/types/air_space.dm b/code/modules/fishing/fish/types/air_space.dm
new file mode 100644
index 0000000000000..f3b985edfa78a
--- /dev/null
+++ b/code/modules/fishing/fish/types/air_space.dm
@@ -0,0 +1,95 @@
+/obj/item/fish/sand_surfer
+ name = "sand surfer"
+ desc = "A bronze alien \"fish\" living and swimming underneath faraway sandy places."
+ icon_state = "sand_surfer"
+ sprite_height = 6
+ sprite_width = 6
+ stable_population = 5
+ average_size = 65
+ average_weight = 1100
+ weight_size_deviation = 0.35
+ random_case_rarity = FISH_RARITY_RARE
+ required_fluid_type = AQUARIUM_FLUID_AIR
+ required_temperature_min = MIN_AQUARIUM_TEMP+25
+ required_temperature_max = MIN_AQUARIUM_TEMP+60
+ fish_movement_type = /datum/fish_movement/plunger
+ fishing_difficulty_modifier = 5
+ fish_traits = list(/datum/fish_trait/shiny_lover)
+ beauty = FISH_BEAUTY_GOOD
+
+/obj/item/fish/sand_crab
+ name = "burrower crab"
+ desc = "A sand-dwelling crustacean. It looks like a crab and tastes like a crab, but waddles like a fish."
+ icon_state = "crab"
+ dedicated_in_aquarium_icon_state = "crab_small"
+ sprite_height = 6
+ sprite_width = 10
+ average_size = 60
+ average_weight = 1000
+ weight_size_deviation = 0.1
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ required_temperature_min = MIN_AQUARIUM_TEMP+20
+ required_temperature_max = MIN_AQUARIUM_TEMP+40
+ fillet_type = /obj/item/food/meat/slab/rawcrab
+ fish_traits = list(/datum/fish_trait/amphibious, /datum/fish_trait/shiny_lover, /datum/fish_trait/carnivore)
+ fish_movement_type = /datum/fish_movement/slow
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = SEAFOOD,
+ ),
+ )
+
+/obj/item/fish/bumpy
+ name = "bump-fish"
+ desc = "An misshapen fish-thing all covered in stubby little tendrils"
+ icon_state = "bumpy"
+ sprite_height = 4
+ sprite_width = 5
+ stable_population = 4
+ required_fluid_type = AQUARIUM_FLUID_ANY_WATER
+ required_temperature_min = MIN_AQUARIUM_TEMP+15
+ required_temperature_max = MIN_AQUARIUM_TEMP+40
+ beauty = FISH_BEAUTY_BAD
+ fish_traits = list(/datum/fish_trait/amphibious, /datum/fish_trait/vegan)
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = VEGETABLES,
+ ),
+ )
+
+/obj/item/fish/starfish
+ name = "cosmostarfish"
+ desc = "A peculiar, gravity-defying, echinoderm-looking critter from hyperspace."
+ icon_state = "starfish"
+ icon_state_dead = "starfish_dead"
+ sprite_height = 3
+ sprite_width = 4
+ average_size = 30
+ average_weight = 300
+ stable_population = 3
+ required_fluid_type = AQUARIUM_FLUID_AIR
+ random_case_rarity = FISH_RARITY_NOPE
+ required_temperature_min = 0
+ required_temperature_max = INFINITY
+ safe_air_limits = null
+ min_pressure = 0
+ max_pressure = INFINITY
+ grind_results = list(/datum/reagent/bluespace = 10)
+ fillet_type = null
+ fish_traits = list(/datum/fish_trait/antigrav, /datum/fish_trait/mixotroph)
+ beauty = FISH_BEAUTY_GREAT
+
+/obj/item/fish/starfish/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ update_appearance(UPDATE_OVERLAYS)
+
+/obj/item/fish/starfish/update_overlays()
+ . = ..()
+ if(status == FISH_ALIVE)
+ . += emissive_appearance(icon, "starfish_emissive", src)
+
+///It spins, and dimly glows in the dark.
+/obj/item/fish/starfish/flop_animation()
+ DO_FLOATING_ANIM(src)
diff --git a/code/modules/fishing/fish/types/anadromous.dm b/code/modules/fishing/fish/types/anadromous.dm
new file mode 100644
index 0000000000000..ecdbda1fde7d2
--- /dev/null
+++ b/code/modules/fishing/fish/types/anadromous.dm
@@ -0,0 +1,62 @@
+/obj/item/fish/sockeye_salmon
+ name = "sockeye salmon"
+ desc = "A fairly common and iconic salmon endemic of the Pacific Ocean. At some point imported into outer space, where we're now."
+ icon_state = "sockeye"
+ sprite_width = 6
+ sprite_height = 4
+ stable_population = 6
+ required_temperature_min = MIN_AQUARIUM_TEMP+3
+ required_temperature_max = MIN_AQUARIUM_TEMP+19
+ required_fluid_type = AQUARIUM_FLUID_ANADROMOUS
+ fillet_type = /obj/item/food/fishmeat/salmon
+ beauty = FISH_BEAUTY_GOOD
+
+/obj/item/fish/arctic_char
+ name = "arctic char"
+ desc = "A cold-water anadromous fish widespread around the Northern Hemisphere of Earth, yet it has somehow found a way here."
+ icon_state = "arctic_char"
+ sprite_width = 7
+ sprite_height = 4
+ stable_population = 6
+ average_size = 60
+ average_weight = 1200
+ weight_size_deviation = 0.5 // known for their size dismophism
+ required_temperature_min = MIN_AQUARIUM_TEMP+3
+ required_temperature_max = MIN_AQUARIUM_TEMP+19
+ required_fluid_type = AQUARIUM_FLUID_ANADROMOUS
+
+/obj/item/fish/pike
+ name = "pike"
+ desc = "A long-bodied predator with a snout that almost looks like a beak. Definitely not a weapon to swing around."
+ icon = 'icons/obj/aquarium/wide.dmi'
+ icon_state = "pike"
+ inhand_icon_state = "pike"
+ base_pixel_x = -16
+ pixel_x = -16
+ stable_population = 4
+ sprite_width = 10
+ sprite_height = 3
+ average_size = 100
+ average_weight = 2000
+ breeding_timeout = 4 MINUTES
+ health = 150
+ beauty = FISH_BEAUTY_GOOD
+ required_fluid_type = AQUARIUM_FLUID_ANADROMOUS
+ random_case_rarity = FISH_RARITY_RARE
+ fish_movement_type = /datum/fish_movement/plunger
+ fishing_difficulty_modifier = 10
+ required_temperature_min = MIN_AQUARIUM_TEMP+12
+ required_temperature_max = MIN_AQUARIUM_TEMP+27
+ fish_traits = list(/datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/aggressive)
+ compatible_types = list(/obj/item/fish/pike/armored)
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = SEAFOOD|MEAT,
+ ),
+ /obj/item/fish,
+ )
+
+/obj/item/fish/pike/Initialize(mapload)
+ . = ..()
+ ADD_TRAIT(src, TRAIT_FISH_SHOULD_TWOHANDED, INNATE_TRAIT)
diff --git a/code/modules/fishing/fish/types/freshwater.dm b/code/modules/fishing/fish/types/freshwater.dm
new file mode 100644
index 0000000000000..129b738fc0ad8
--- /dev/null
+++ b/code/modules/fishing/fish/types/freshwater.dm
@@ -0,0 +1,213 @@
+/obj/item/fish/goldfish
+ name = "goldfish"
+ desc = "Despite common belief, goldfish do not have three-second memories. \
+ They can actually remember things that happened up to three months ago."
+ icon_state = "goldfish"
+ dedicated_in_aquarium_icon_state = "fish_greyscale"
+ aquarium_vc_color = "#D8540D"
+ sprite_width = 5
+ sprite_height = 3
+ stable_population = 9
+ average_size = 20
+ average_weight = 200
+ weight_size_deviation = 0.35
+ favorite_bait = list(/obj/item/food/bait/worm)
+ required_temperature_min = MIN_AQUARIUM_TEMP+18
+ required_temperature_max = MIN_AQUARIUM_TEMP+26
+ evolution_types = list(/datum/fish_evolution/three_eyes, /datum/fish_evolution/chainsawfish)
+ compatible_types = list(/obj/item/fish/goldfish/gill, /obj/item/fish/goldfish/three_eyes, /obj/item/fish/goldfish/three_eyes/gill)
+
+/obj/item/fish/goldfish/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ add_traits(list(TRAIT_FISHING_BAIT, TRAIT_GOOD_QUALITY_BAIT), INNATE_TRAIT)
+
+/obj/item/fish/goldfish/gill
+ name = "McGill"
+ desc = "A great rubber duck tool for Lawyers who can't get a grasp over their case."
+ stable_population = 1
+ random_case_rarity = FISH_RARITY_NOPE
+ show_in_catalog = FALSE
+ beauty = FISH_BEAUTY_GOOD
+ compatible_types = list(/obj/item/fish/goldfish, /obj/item/fish/goldfish/three_eyes)
+ fish_traits = list(/datum/fish_trait/recessive)
+
+/obj/item/fish/goldfish/three_eyes
+ name = "three-eyed goldfish"
+ desc = "A goldfish with an extra half a pair of eyes. You wonder what it's been feeding on lately..."
+ icon_state = "three_eyes"
+ stable_population = 4
+ fish_traits = list(/datum/fish_trait/recessive, /datum/fish_trait/shiny_lover)
+ compatible_types = list(/obj/item/fish/goldfish, /obj/item/fish/goldfish/gill, /obj/item/fish/goldfish/three_eyes/gill)
+ beauty = FISH_BEAUTY_GOOD
+ fishing_difficulty_modifier = 10
+ random_case_rarity = FISH_RARITY_VERY_RARE
+ food = /datum/reagent/toxin/mutagen
+ favorite_bait = list(
+ list(
+ "Type" = "Reagent",
+ "Value" = /datum/reagent/toxin/mutagen,
+ "Amount" = 3,
+ ),
+ )
+
+/obj/item/fish/goldfish/three_eyes/gill
+ name = "McGill"
+ desc = "A great rubber duck tool for Lawyers who can't get a grasp over their case. It looks kinda different today..."
+ compatible_types = list(/obj/item/fish/goldfish, /obj/item/fish/goldfish/three_eyes)
+ beauty = FISH_BEAUTY_GREAT
+ show_in_catalog = FALSE
+ stable_population = 1
+ random_case_rarity = FISH_RARITY_NOPE
+
+/obj/item/fish/angelfish
+ name = "angelfish"
+ desc = "Young Angelfish often live in groups, while adults prefer solitary life. They become territorial and aggressive toward other fish when they reach adulthood."
+ icon_state = "angelfish"
+ sprite_width = 4
+ sprite_height = 7
+ average_size = 30
+ average_weight = 500
+ stable_population = 3
+ fish_traits = list(/datum/fish_trait/aggressive)
+ required_temperature_min = MIN_AQUARIUM_TEMP+22
+ required_temperature_max = MIN_AQUARIUM_TEMP+30
+
+/obj/item/fish/guppy
+ name = "guppy"
+ desc = "Guppy is also known as rainbow fish because of the brightly colored body and fins."
+ icon_state = "guppy"
+ sprite_width = 5
+ sprite_height = 2
+ sprite_width = 8
+ sprite_height = 5
+ average_size = 30
+ average_weight = 500
+ stable_population = 6
+ required_temperature_min = MIN_AQUARIUM_TEMP+20
+ required_temperature_max = MIN_AQUARIUM_TEMP+28
+
+/obj/item/fish/plasmatetra
+ name = "plasma tetra"
+ desc = "Due to their small size, tetras are prey to many predators in their watery world, including eels, crustaceans, and invertebrates."
+ icon_state = "plastetra"
+ sprite_width = 4
+ sprite_height = 2
+ average_size = 30
+ average_weight = 500
+ stable_population = 3
+ required_temperature_min = MIN_AQUARIUM_TEMP+20
+ required_temperature_max = MIN_AQUARIUM_TEMP+28
+
+/obj/item/fish/catfish
+ name = "catfish"
+ desc = "A catfish has about 100,000 taste buds, and their bodies are covered with them to help detect chemicals present in the water and also to respond to touch."
+ icon_state = "catfish"
+ sprite_width = 8
+ sprite_height = 4
+ average_size = 80
+ average_weight = 1600
+ weight_size_deviation = 0.35
+ stable_population = 3
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = JUNKFOOD
+ )
+ )
+ required_temperature_min = MIN_AQUARIUM_TEMP+12
+ required_temperature_max = MIN_AQUARIUM_TEMP+30
+ beauty = FISH_BEAUTY_GOOD
+
+/obj/item/fish/zipzap
+ name = "anxious zipzap"
+ desc = "A fish overflowing with crippling anxiety and electric potential. Worried about the walls of its tank closing in constantly. Both literally and as a general metaphorical unease about life's direction."
+ icon_state = "zipzap"
+ icon_state_dead = "zipzap_dead"
+ sprite_width = 6
+ sprite_height = 3
+ stable_population = 3
+ average_size = 30
+ average_weight = 500
+ random_case_rarity = FISH_RARITY_VERY_RARE
+ favorite_bait = list(/obj/item/stock_parts/power_store/cell/lead)
+ required_temperature_min = MIN_AQUARIUM_TEMP+18
+ required_temperature_max = MIN_AQUARIUM_TEMP+26
+ fish_traits = list(
+ /datum/fish_trait/no_mating,
+ /datum/fish_trait/wary,
+ /datum/fish_trait/anxiety,
+ /datum/fish_trait/electrogenesis,
+ )
+ //anxiety naturally limits the amount of zipzaps per tank, so they are stronger alone
+ electrogenesis_power = 20 MEGA JOULES
+ beauty = FISH_BEAUTY_GOOD
+
+/obj/item/fish/tadpole
+ name = "tadpole"
+ desc = "The larval spawn of an amphibian. A very minuscle, round creature with a long tail it uses to swim around."
+ icon_state = "tadpole"
+ average_size = 3
+ average_weight = 10
+ sprite_width = 3
+ sprite_height = 1
+ health = 50
+ feeding_frequency = 1.5 MINUTES
+ required_temperature_min = MIN_AQUARIUM_TEMP+15
+ required_temperature_max = MIN_AQUARIUM_TEMP+20
+ fillet_type = null
+ fish_traits = list(/datum/fish_trait/no_mating) //They grow into frogs and that's it.
+ beauty = FISH_BEAUTY_NULL
+ random_case_rarity = FISH_RARITY_NOPE //Why would you want generic frog tadpoles you get from ponds inside fish cases?
+ /// Once dead, tadpoles disappear after a dozen seconds, since you can get infinite tadpoles.
+ var/del_timerid
+
+/obj/item/fish/tadpole/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ AddComponent(/datum/component/fish_growth, /mob/living/basic/frog, 100 / rand(2.5, 3 MINUTES) * 10)
+ RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks))
+ RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth))
+
+/obj/item/fish/tadpole/set_status(new_status, silent = FALSE)
+ . = ..()
+ if(status == FISH_DEAD)
+ del_timerid = QDEL_IN_STOPPABLE(src, 12 SECONDS)
+ else
+ deltimer(del_timerid)
+
+/obj/item/fish/tadpole/proc/growth_checks(datum/source, seconds_per_tick)
+ SIGNAL_HANDLER
+ var/hunger = CLAMP01((world.time - last_feeding) / feeding_frequency)
+ if(hunger >= 0.7) //too hungry to grow
+ return COMPONENT_DONT_GROW
+ var/obj/structure/aquarium/aquarium = loc
+ if(!aquarium.allow_breeding) //the aquarium has breeding disabled
+ return COMPONENT_DONT_GROW
+
+/obj/item/fish/tadpole/proc/on_growth(datum/source, mob/living/basic/frog/result)
+ SIGNAL_HANDLER
+ playsound(result, result.attack_sound, 50, TRUE) // reeeeeeeeeeeeeee...
+
+/obj/item/fish/tadpole/get_export_price(price, percent)
+ return 2 //two credits. Tadpoles aren't really that valueable.
+
+/obj/item/fish/perch
+ name = "perch"
+ desc = "An all around popular panfish, game fish and unfortunate prey to other, bigger predators."
+ icon_state = "perch"
+ dedicated_in_aquarium_icon_state = "fish_greyscale"
+ aquarium_vc_color = "#9D8C64"
+ sprite_width = 5
+ sprite_height = 3
+ stable_population = 7
+ average_size = 25
+ average_weight = 400
+ required_temperature_min = MIN_AQUARIUM_TEMP+5
+ required_temperature_max = MIN_AQUARIUM_TEMP+26
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = BUGS,
+ ),
+ /obj/item/fish,
+ /obj/item/fishing_lure, //they love lures in general.
+ )
diff --git a/code/modules/fishing/fish/types/holographic.dm b/code/modules/fishing/fish/types/holographic.dm
new file mode 100644
index 0000000000000..dfcdbeedb6b61
--- /dev/null
+++ b/code/modules/fishing/fish/types/holographic.dm
@@ -0,0 +1,108 @@
+
+/obj/item/fish/holo
+ name = "holographic goldfish"
+ desc = "A holographic representation of a common goldfish, slowly flickering out, removed from its holo-habitat."
+ icon_state = /obj/item/fish/goldfish::icon_state
+ show_in_catalog = FALSE
+ random_case_rarity = FISH_RARITY_NOPE
+ dedicated_in_aquarium_icon_state = /obj/item/fish/goldfish::dedicated_in_aquarium_icon_state
+ aquarium_vc_color = /obj/item/fish/goldfish::aquarium_vc_color
+ sprite_width = /obj/item/fish/goldfish::sprite_width
+ sprite_height = /obj/item/fish/goldfish::sprite_height
+ stable_population = 1
+ average_size = /obj/item/fish/goldfish::average_size
+ average_weight = /obj/item/fish/goldfish::average_weight
+ required_fluid_type = AQUARIUM_FLUID_ANADROMOUS
+ grind_results = null
+ fillet_type = null
+ death_text = "%SRC gently disappears."
+ fish_traits = list(/datum/fish_trait/no_mating) //just to be sure, these shouldn't reproduce
+ experisci_scannable = FALSE
+ beauty = /obj/item/fish/goldfish::beauty
+
+/obj/item/fish/holo/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ var/area/station/holodeck/holo_area = get_area(src)
+ if(!istype(holo_area))
+ addtimer(CALLBACK(src, PROC_REF(set_status), FISH_DEAD), 1 MINUTES)
+ return
+ holo_area.linked.add_to_spawned(src)
+
+/obj/item/fish/holo/set_status(new_status, silent = FALSE)
+ . = ..()
+ if(status == FISH_DEAD)
+ animate(src, alpha = 0, 3 SECONDS, easing = SINE_EASING)
+ QDEL_IN(src, 3 SECONDS)
+
+/obj/item/fish/holo/crab
+ name = "holographic crab"
+ desc = "A holographic represantion of a soul-crushingly soulless crab, unlike the cuter ones occasionally roaming around. It stares at you, with empty, beady eyes."
+ icon_state = "crab"
+ dedicated_in_aquarium_icon_state = null
+ aquarium_vc_color = null
+ average_size = 30
+ average_weight = 1000
+ sprite_height = 6
+ sprite_width = 10
+ beauty = FISH_BEAUTY_GOOD
+
+/obj/item/fish/holo/puffer
+ name = "holographic pufferfish"
+ desc ="A holographic representation of 100% safe-to-eat pufferfish... that is, if holographic fishes were even edible."
+ icon_state = /obj/item/fish/pufferfish::icon_state
+ dedicated_in_aquarium_icon_state = /obj/item/fish/pufferfish::dedicated_in_aquarium_icon_state
+ aquarium_vc_color = /obj/item/fish/pufferfish::aquarium_vc_color
+ average_size = /obj/item/fish/pufferfish::average_size
+ average_weight = /obj/item/fish/pufferfish::average_weight
+ sprite_height = /obj/item/fish/pufferfish::sprite_height
+ sprite_width = /obj/item/fish/pufferfish::sprite_width
+ beauty = /obj/item/fish/pufferfish::beauty
+
+/obj/item/fish/holo/angel
+ name = "holographic angelfish"
+ desc = "A holographic representation of a angelfish. I got nothing snarky to say about this one."
+ icon_state = /obj/item/fish/angelfish::icon_state
+ dedicated_in_aquarium_icon_state = /obj/item/fish/angelfish::dedicated_in_aquarium_icon_state
+ aquarium_vc_color = /obj/item/fish/angelfish::aquarium_vc_color
+ average_size = /obj/item/fish/angelfish::average_size
+ average_weight = /obj/item/fish/angelfish::average_weight
+ sprite_height = /obj/item/fish/angelfish::sprite_height
+ sprite_width = /obj/item/fish/angelfish::sprite_width
+ beauty = /obj/item/fish/angelfish::beauty
+
+/obj/item/fish/holo/clown
+ name = "holographic clownfish"
+ icon_state = "holo_clownfish"
+ desc = "A holographic representation of a clownfish, or at least how they used to look like five centuries ago."
+ dedicated_in_aquarium_icon_state = null
+ aquarium_vc_color = /obj/item/fish/clownfish::aquarium_vc_color
+ average_size = /obj/item/fish/clownfish::average_size
+ average_weight = /obj/item/fish/clownfish::average_weight
+ sprite_height = /obj/item/fish/clownfish::sprite_height
+ sprite_width = /obj/item/fish/clownfish::sprite_width
+ required_fluid_type = /obj/item/fish/clownfish::required_fluid_type
+ beauty = /obj/item/fish/clownfish::beauty
+
+/obj/item/fish/holo/checkered
+ name = "unrendered holographic fish"
+ desc = "A checkered silhoutte of searing purple and pitch black presents itself before your eyes, like a tear in fabric of reality. It hurts to watch."
+ icon_state = "checkered" //it's a meta joke, buddy.
+ dedicated_in_aquarium_icon_state = null
+ aquarium_vc_color = null
+ average_size = 30
+ average_weight = 500
+ sprite_width = 4
+ sprite_height = 3
+ beauty = FISH_BEAUTY_NULL
+
+/obj/item/fish/holo/halffish
+ name = "holographic half-fish"
+ desc = "A holographic representation of... a fish reduced to all bones, except for its head. Isn't it supposed to be dead? Ehr, holo-dead?"
+ icon_state = "half_fish"
+ dedicated_in_aquarium_icon_state = null
+ aquarium_vc_color = null
+ sprite_height = 4
+ sprite_width = 10
+ average_size = 50
+ average_weight = 500
+ beauty = FISH_BEAUTY_UGLY
diff --git a/code/modules/fishing/fish/types/mining.dm b/code/modules/fishing/fish/types/mining.dm
new file mode 100644
index 0000000000000..7614f259e5939
--- /dev/null
+++ b/code/modules/fishing/fish/types/mining.dm
@@ -0,0 +1,198 @@
+/// Commonly found on the mining fishing spots. Can be grown into lobstrosities
+/obj/item/fish/chasm_crab
+ name = "chasm chrab"
+ desc = "The young of the lobstrosity mature in pools below the earth, eating what falls in until large enough to clamber out. Those found near the station are well-fed."
+ icon_state = "chrab"
+ sprite_height = 9
+ sprite_width = 8
+ stable_population = 4
+ feeding_frequency = 10 MINUTES
+ random_case_rarity = FISH_RARITY_RARE
+ fillet_type = /obj/item/food/meat/slab/rawcrab
+ required_temperature_min = MIN_AQUARIUM_TEMP+9
+ required_temperature_max = LAVALAND_MAX_TEMPERATURE+50
+ min_pressure = HAZARD_LOW_PRESSURE
+ safe_air_limits = list(
+ /datum/gas/oxygen = list(2, 100),
+ /datum/gas/nitrogen,
+ /datum/gas/carbon_dioxide = list(0, 20),
+ /datum/gas/water_vapor,
+ /datum/gas/plasma = list(0, 5),
+ /datum/gas/bz = list(0, 5),
+ /datum/gas/miasma = list(0, 5),
+ )
+ evolution_types = list(/datum/fish_evolution/ice_chrab)
+ compatible_types = list(/obj/item/fish/chasm_crab/ice)
+ beauty = FISH_BEAUTY_GOOD
+ favorite_bait = list(/obj/item/fish/lavaloop)
+ ///This value represents how much the crab needs aren't being met. Higher values translate to a more likely hostile lobstrosity.
+ var/anger = 0
+ ///The lobstrosity type this matures into
+ var/lob_type = /mob/living/basic/mining/lobstrosity/juvenile/lava
+ ///at which rate the crab gains maturation
+ var/growth_rate = 100 / (10 MINUTES) * 10
+
+/obj/item/fish/chasm_crab/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks))
+ RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth))
+
+///A chasm crab growth speed is determined by its initial weight and size, ergo bigger crabs for faster lobstrosities
+/obj/item/fish/chasm_crab/update_size_and_weight(new_size = average_size, new_weight = average_weight)
+ . = ..()
+ var/multiplier = 1
+ switch(size)
+ if(0 to FISH_SIZE_TINY_MAX)
+ multiplier -= 0.2
+ if(FISH_SIZE_SMALL_MAX to FISH_SIZE_NORMAL_MAX)
+ multiplier += 0.2
+ if(FISH_SIZE_NORMAL_MAX to FISH_SIZE_BULKY_MAX)
+ multiplier += 0.5
+ if(FISH_SIZE_BULKY_MAX to INFINITY)
+ multiplier += 0.8
+
+ if(weight <= 800)
+ multiplier -= 0.1 * round((1000 - weight) / 200)
+ else if(weight >= 1500)
+ multiplier += min(0.1 * round((weight - 1000) / 500), 2)
+
+ AddComponent(/datum/component/fish_growth, lob_type, initial(growth_rate) * multiplier)
+
+/obj/item/fish/chasm_crab/proc/growth_checks(datum/source, seconds_per_tick)
+ SIGNAL_HANDLER
+ var/hunger = CLAMP01((world.time - last_feeding) / feeding_frequency)
+ if(health <= initial(health) * 0.6 || hunger >= 0.6) //if too hurt or hungry, don't grow.
+ anger += growth_rate * 2 * seconds_per_tick
+ return COMPONENT_DONT_GROW
+
+ if(hunger >= 0.4) //I'm hungry and angry
+ anger += growth_rate * 0.6 * seconds_per_tick
+
+ if(!isaquarium(loc))
+ return
+
+ var/obj/structure/aquarium/aquarium = loc
+ if(!aquarium.allow_breeding) //the aquarium has breeding disabled
+ return COMPONENT_DONT_GROW
+ if(!locate(/obj/item/aquarium_prop) in aquarium) //the aquarium deco is quite barren
+ anger += growth_rate * 0.25 * seconds_per_tick
+ var/fish_count = length(aquarium.get_fishes())
+ if(!ISINRANGE(fish_count, 3, AQUARIUM_MAX_BREEDING_POPULATION * 0.5)) //too lonely or overcrowded
+ anger += growth_rate * 0.3 * seconds_per_tick
+ if(fish_count > AQUARIUM_MAX_BREEDING_POPULATION * 0.5) //check if there's enough room to maturate.
+ return COMPONENT_DONT_GROW
+
+/obj/item/fish/chasm_crab/proc/on_growth(datum/source, mob/living/basic/mining/lobstrosity/juvenile/result)
+ SIGNAL_HANDLER
+ if(!prob(anger))
+ result.AddElement(/datum/element/ai_retaliate)
+ qdel(result.ai_controller)
+ result.ai_controller = new /datum/ai_controller/basic_controller/lobstrosity/juvenile/calm(result)
+ else if(anger < 30) //not really that mad, just a bit unstable.
+ qdel(result.ai_controller)
+ result.ai_controller = new /datum/ai_controller/basic_controller/lobstrosity/juvenile/capricious(result)
+
+/obj/item/fish/chasm_crab/ice
+ name = "arctic chrab"
+ desc = "A subspecies of chasm chrabs that has adapted to the cold climate and lack of abysmal holes of the icemoon."
+ icon_state = "arctic_chrab"
+ required_temperature_min = ICEBOX_MIN_TEMPERATURE-20
+ required_temperature_max = MIN_AQUARIUM_TEMP+15
+ evolution_types = list(/datum/fish_evolution/chasm_chrab)
+ compatible_types = list(/obj/item/fish/chasm_crab)
+ beauty = FISH_BEAUTY_GREAT
+ lob_type = /mob/living/basic/mining/lobstrosity/juvenile
+
+/obj/item/fish/boned
+ name = "unmarine bonemass"
+ desc = "What one could mistake for fish remains, is in reality a species that chose to discard its weak flesh a long time ago. A living fossil, in its most literal sense."
+ icon_state = "bonemass"
+ sprite_width = 10
+ sprite_height = 7
+ fish_movement_type = /datum/fish_movement/zippy
+ random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS
+ required_fluid_type = AQUARIUM_FLUID_ANY_WATER
+ min_pressure = HAZARD_LOW_PRESSURE
+ health = 150
+ stable_population = 3
+ grind_results = list(/datum/reagent/bone_dust = 10)
+ fillet_type = /obj/item/stack/sheet/bone
+ num_fillets = 2
+ fish_traits = list(/datum/fish_trait/revival, /datum/fish_trait/carnivore)
+ average_size = 70
+ average_weight = 2000
+ death_text = "%SRC stops moving." //It's dead... or is it?
+ evolution_types = list(/datum/fish_evolution/mastodon)
+ beauty = FISH_BEAUTY_UGLY
+
+/obj/item/fish/lavaloop
+ name = "lavaloop fish"
+ desc = "Due to its curvature, it can be used as make-shift boomerang."
+ icon_state = "lava_loop"
+ sprite_width = 3
+ sprite_height = 5
+ average_size = 30
+ average_weight = 500
+ resistance_flags = FIRE_PROOF | LAVA_PROOF
+ required_fluid_type = AQUARIUM_FLUID_ANY_WATER //if we can survive hot lava and freezing plasrivers, we can survive anything
+ fish_movement_type = /datum/fish_movement/zippy
+ min_pressure = HAZARD_LOW_PRESSURE
+ required_temperature_min = MIN_AQUARIUM_TEMP+30
+ required_temperature_max = MIN_AQUARIUM_TEMP+35
+ fish_traits = list(
+ /datum/fish_trait/carnivore,
+ /datum/fish_trait/heavy,
+ )
+ hitsound = null
+ throwforce = 5
+ beauty = FISH_BEAUTY_GOOD
+ ///maximum bonus damage when winded up
+ var/maximum_bonus = 25
+
+/obj/item/fish/lavaloop/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ add_traits(list(TRAIT_FISHING_BAIT, TRAIT_GOOD_QUALITY_BAIT, TRAIT_BYPASS_RANGED_ARMOR), INNATE_TRAIT)
+ AddComponent(/datum/component/boomerang, throw_range, TRUE)
+ AddComponent(\
+ /datum/component/throwbonus_on_windup,\
+ maximum_bonus = maximum_bonus,\
+ windup_increment_speed = 2,\
+ throw_text = "starts cooking in your hands, it may explode soon!",\
+ pass_maximum_callback = CALLBACK(src, PROC_REF(explode_on_user)),\
+ apply_bonus_callback = CALLBACK(src, PROC_REF(on_fish_land)),\
+ sound_on_success = 'sound/weapons/parry.ogg',\
+ effect_on_success = /obj/effect/temp_visual/guardian/phase,\
+ )
+
+/obj/item/fish/lavaloop/proc/explode_on_user(mob/living/user)
+ var/obj/item/bodypart/arm/active_arm = user.get_active_hand()
+ active_arm?.dismember()
+ to_chat(user, span_warning("[src] explodes!"))
+ playsound(src, 'sound/effects/explosion1.ogg', 40, TRUE)
+ user.flash_act(1, 1)
+ qdel(src)
+
+/obj/item/fish/lavaloop/proc/on_fish_land(mob/living/target, bonus_value)
+ if(!istype(target))
+ return FALSE
+ return (target.mob_size >= MOB_SIZE_LARGE)
+
+/obj/item/fish/lavaloop/plasma_river
+ maximum_bonus = 30
+
+/obj/item/fish/lavaloop/plasma_river/explode_on_user(mob/living/user)
+ playsound(src, 'sound/effects/explosion1.ogg', 40, TRUE)
+ user.flash_act(1, 1)
+ user.apply_status_effect(/datum/status_effect/ice_block_talisman, 5 SECONDS)
+ qdel(src)
+
+/obj/item/fish/lavaloop/plasma_river/on_fish_land(mob/living/target, bonus_value)
+ if(!istype(target))
+ return FALSE
+ if(target.mob_size < MOB_SIZE_LARGE)
+ return FALSE
+ var/freeze_timer = (bonus_value * 0.1)
+ if(freeze_timer <= 0)
+ return FALSE
+ target.apply_status_effect(/datum/status_effect/ice_block_talisman, freeze_timer SECONDS)
+ return FALSE
diff --git a/code/modules/fishing/fish/types/ruins.dm b/code/modules/fishing/fish/types/ruins.dm
new file mode 100644
index 0000000000000..da9e8388c0c44
--- /dev/null
+++ b/code/modules/fishing/fish/types/ruins.dm
@@ -0,0 +1,73 @@
+///From oil puddles from the elephant graveyard. Also an evolution of the "unmarine bonemass"
+/obj/item/fish/mastodon
+ name = "unmarine mastodon"
+ desc = "A monster of exposed muscles and innards, wrapped in a fish-like skeleton. You don't remember ever seeing it on the catalog."
+ icon = 'icons/obj/aquarium/wide.dmi'
+ icon_state = "mastodon"
+ base_pixel_x = -16
+ pixel_x = -16
+ sprite_width = 12
+ sprite_height = 7
+ show_in_catalog = FALSE
+ random_case_rarity = FISH_RARITY_NOPE
+ fishing_difficulty_modifier = 30
+ required_fluid_type = AQUARIUM_FLUID_ANY_WATER
+ min_pressure = HAZARD_LOW_PRESSURE
+ health = 300
+ stable_population = 1 //This means they can only crossbreed.
+ grind_results = list(/datum/reagent/bone_dust = 5, /datum/reagent/consumable/liquidgibs = 5)
+ fillet_type = /obj/item/stack/sheet/bone
+ num_fillets = 2
+ feeding_frequency = 2 MINUTES
+ breeding_timeout = 5 MINUTES
+ average_size = 180
+ average_weight = 5000
+ death_text = "%SRC stops moving."
+ fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/amphibious, /datum/fish_trait/revival, /datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/aggressive)
+ beauty = FISH_BEAUTY_BAD
+
+///From the cursed spring
+/obj/item/fish/soul
+ name = "soulfish"
+ desc = "A distant yet vaguely close critter, like a long lost relative. You feel your soul rejuvenated just from looking at it... Also, what the fuck is this shit?!"
+ icon_state = "soulfish"
+ sprite_width = 7
+ sprite_height = 6
+ average_size = 60
+ average_weight = 1200
+ stable_population = 4
+ show_in_catalog = FALSE
+ beauty = FISH_BEAUTY_EXCELLENT
+ fish_movement_type = /datum/fish_movement/choppy //Glideless legacy movement? in my fishing minigame?
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = JUNKFOOD|FRIED,
+ ),
+ )
+ fillet_type = /obj/item/food/meat/cutlet/plain/human
+ required_temperature_min = MIN_AQUARIUM_TEMP+3
+ required_temperature_max = MIN_AQUARIUM_TEMP+38
+ random_case_rarity = FISH_RARITY_NOPE
+
+///From the cursed spring
+/obj/item/fish/skin_crab
+ name = "skin crab"
+ desc = "\"And on the eighth day, a demential mockery of both humanity and crabity was made.\" Fascinating."
+ icon_state = "skin_crab"
+ sprite_width = 7
+ sprite_height = 6
+ average_size = 40
+ average_weight = 750
+ stable_population = 5
+ show_in_catalog = FALSE
+ beauty = FISH_BEAUTY_GREAT
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = JUNKFOOD|FRIED
+ ),
+ )
+ fillet_type = /obj/item/food/meat/slab/rawcrab
+ random_case_rarity = FISH_RARITY_NOPE
+
diff --git a/code/modules/fishing/fish/types/saltwater.dm b/code/modules/fishing/fish/types/saltwater.dm
new file mode 100644
index 0000000000000..0271c7f300876
--- /dev/null
+++ b/code/modules/fishing/fish/types/saltwater.dm
@@ -0,0 +1,275 @@
+/obj/item/fish/clownfish
+ name = "clownfish"
+ desc = "Clownfish catch prey by swimming onto the reef, attracting larger fish, and luring them back to the anemone. The anemone will sting and eat the larger fish, leaving the remains for the clownfish."
+ icon_state = "clownfish"
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ sprite_width = 7
+ sprite_height = 4
+ average_size = 30
+ average_weight = 500
+ stable_population = 4
+ fish_traits = list(/datum/fish_trait/picky_eater)
+ evolution_types = list(/datum/fish_evolution/lubefish)
+ compatible_types = list(/obj/item/fish/clownfish/lube)
+ required_temperature_min = MIN_AQUARIUM_TEMP+22
+ required_temperature_max = MIN_AQUARIUM_TEMP+30
+
+/obj/item/fish/clownfish/lube
+ name = "lubefish"
+ desc = "A clownfish exposed to cherry-flavored lube for far too long. First discovered the days following a cargo incident around the seas of Europa, when thousands of thousands of thousands..."
+ icon_state = "lubefish"
+ random_case_rarity = FISH_RARITY_VERY_RARE
+ fish_traits = list(/datum/fish_trait/picky_eater, /datum/fish_trait/lubed)
+ evolution_types = null
+ compatible_types = list(/obj/item/fish/clownfish)
+ food = /datum/reagent/lube
+ fishing_difficulty_modifier = 5
+ beauty = FISH_BEAUTY_GREAT
+
+/obj/item/fish/cardinal
+ name = "cardinalfish"
+ desc = "Cardinalfish are often found near sea urchins, where the fish hide when threatened."
+ icon_state = "cardinalfish"
+ sprite_width = 6
+ sprite_height = 3
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ average_size = 30
+ average_weight = 500
+ stable_population = 4
+ fish_traits = list(/datum/fish_trait/vegan)
+ required_temperature_min = MIN_AQUARIUM_TEMP+22
+ required_temperature_max = MIN_AQUARIUM_TEMP+30
+
+/obj/item/fish/greenchromis
+ name = "green chromis"
+ desc = "The Chromis can vary in color from blue to green depending on the lighting and distance from the lights."
+ icon_state = "greenchromis"
+ sprite_width = 5
+ sprite_height = 3
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ average_size = 30
+ average_weight = 500
+ stable_population = 5
+ required_temperature_min = MIN_AQUARIUM_TEMP+23
+ required_temperature_max = MIN_AQUARIUM_TEMP+28
+
+ fishing_difficulty_modifier = 5 // Bit harder
+
+/obj/item/fish/firefish
+ name = "firefish goby"
+ desc = "To communicate in the wild, the firefish uses its dorsal fin to alert others of potential danger."
+ icon_state = "firefish"
+ sprite_width = 5
+ sprite_height = 3
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ average_size = 30
+ average_weight = 500
+ stable_population = 3
+ disliked_bait = list(/obj/item/food/bait/worm, /obj/item/food/bait/doughball)
+ fish_movement_type = /datum/fish_movement/zippy
+ required_temperature_min = MIN_AQUARIUM_TEMP+23
+ required_temperature_max = MIN_AQUARIUM_TEMP+28
+
+/obj/item/fish/pufferfish
+ name = "pufferfish"
+ desc = "They say that one pufferfish contains enough toxins to kill 30 people, although in the last few decades they've been genetically engineered en masse to be less poisonous."
+ icon_state = "pufferfish"
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ sprite_width = 8
+ sprite_height = 6
+ average_size = 60
+ average_weight = 1000
+ stable_population = 3
+ required_temperature_min = MIN_AQUARIUM_TEMP+23
+ required_temperature_max = MIN_AQUARIUM_TEMP+28
+ fillet_type = /obj/item/food/fishmeat/quality //Too bad they're poisonous
+ fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/toxic)
+ beauty = FISH_BEAUTY_GOOD
+
+/obj/item/fish/lanternfish
+ name = "lanternfish"
+ desc = "Typically found in areas below 6600 feet below the surface of the ocean, they live in complete darkness."
+ icon_state = "lanternfish"
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ random_case_rarity = FISH_RARITY_VERY_RARE
+ sprite_width = 6
+ sprite_height = 5
+ average_size = 50
+ average_weight = 1000
+ stable_population = 3
+ fish_traits = list(/datum/fish_trait/nocturnal)
+ required_temperature_min = MIN_AQUARIUM_TEMP+2 //My source is that the water at a depth 6600 feet is pretty darn cold.
+ required_temperature_max = MIN_AQUARIUM_TEMP+18
+ beauty = FISH_BEAUTY_NULL
+
+/obj/item/fish/stingray
+ name = "stingray"
+ desc = "A type of ray, most known for its venomous stinger. Despite that, They're normally docile, if not a bit easily frightened."
+ icon_state = "stingray"
+ stable_population = 4
+ sprite_height = 7
+ sprite_width = 8
+ average_size = 60
+ average_weight = 700
+ beauty = FISH_BEAUTY_GREAT
+ random_case_rarity = FISH_RARITY_RARE
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER //Someone ought to add river rays later I guess.
+ fish_traits = list(/datum/fish_trait/stinger, /datum/fish_trait/toxic_barbs, /datum/fish_trait/wary, /datum/fish_trait/carnivore, /datum/fish_trait/predator)
+
+/obj/item/fish/swordfish
+ name = "swordfish"
+ desc = "A large billfish, most famous for its elongated bill, while also fairly popular for cooking, and as a fearsome weapon in the hands of a veteran spess-fisherman."
+ icon = 'icons/obj/aquarium/wide.dmi'
+ icon_state = "swordfish"
+ inhand_icon_state = "swordfish"
+ force = 18
+ sharpness = SHARP_EDGED
+ attack_verb_continuous = list("slashes", "cuts", "pierces")
+ attack_verb_simple = list("slash", "cut", "pierce")
+ block_sound = 'sound/weapons/parry.ogg'
+ hitsound = 'sound/weapons/rapierhit.ogg'
+ demolition_mod = 0.75
+ attack_speed = 1 SECONDS
+ block_chance = 50
+ wound_bonus = 10
+ bare_wound_bonus = 20
+ armour_penetration = 75
+ base_pixel_x = -18
+ pixel_x = -18
+ sprite_width = 13
+ sprite_height = 6
+ stable_population = 3
+ average_size = 140
+ average_weight = 4000
+ breeding_timeout = 4.5 MINUTES
+ feeding_frequency = 4 MINUTES
+ health = 180
+ beauty = FISH_BEAUTY_EXCELLENT
+ random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ fish_movement_type = /datum/fish_movement/plunger
+ fishing_difficulty_modifier = 25
+ fillet_type = /obj/item/food/fishmeat/quality
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = SEAFOOD,
+ ),
+ /obj/item/fish,
+ )
+ fish_traits = list(/datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/stinger)
+
+/obj/item/fish/swordfish/get_force_rank()
+ switch(w_class)
+ if(WEIGHT_CLASS_TINY)
+ force -= 11
+ attack_speed -= 0.4 SECONDS
+ block_chance -= 45
+ armour_penetration -= 20
+ wound_bonus -= 15
+ bare_wound_bonus -= 20
+ if(WEIGHT_CLASS_SMALL)
+ force -= 8
+ attack_speed -= 0.3 SECONDS
+ block_chance -= 30
+ armour_penetration -= 15
+ wound_bonus -= 10
+ bare_wound_bonus -= 20
+ if(WEIGHT_CLASS_NORMAL)
+ force -= 5
+ attack_speed -= 0.2 SECONDS
+ block_chance -= 20
+ armour_penetration -= 10
+ wound_bonus -= 10
+ bare_wound_bonus -= 15
+ if(WEIGHT_CLASS_BULKY)
+ force -= 3
+ attack_speed -= 0.1 SECONDS
+ block_chance -= 10
+ armour_penetration -= 5
+ wound_bonus -= 5
+ bare_wound_bonus -= 10
+ if(WEIGHT_CLASS_GIGANTIC)
+ force += 5
+ attack_speed += 0.2 SECONDS
+ demolition_mod += 0.15
+ block_chance += 10
+ armour_penetration += 5
+ wound_bonus += 5
+ bare_wound_bonus += 10
+
+ if(status == FISH_DEAD)
+ force -= 4 + w_class
+ block_chance -= 25
+ armour_penetration -= 30
+ wound_bonus -= 10
+ bare_wound_bonus -= 10
+
+/obj/item/fish/swordfish/calculate_fish_force_bonus(bonus_malus)
+ . = ..()
+ armour_penetration += bonus_malus * 5
+ wound_bonus += bonus_malus * 3
+ bare_wound_bonus += bonus_malus * 5
+ block_chance += bonus_malus * 7
+
+/obj/item/fish/squid
+ name = "squid"
+ desc = "An elongated mollusk with eight tentacles, natural camouflage and ink clouds to spray at predators. One of the most intelligent, well-equipped invertebrates out there."
+ icon_state = "squid"
+ sprite_width = 4
+ sprite_height = 5
+ stable_population = 6
+ weight_size_deviation = 0.5 // They vary greatly in size.
+ average_weight = 500 //They're quite lighter than they're long.
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ beauty = FISH_BEAUTY_GOOD
+ required_temperature_min = MIN_AQUARIUM_TEMP+5
+ required_temperature_max = MIN_AQUARIUM_TEMP+26
+ fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/ink, /datum/fish_trait/camouflage, /datum/fish_trait/wary)
+
+/obj/item/fish/monkfish
+ name = "monkfish"
+ desc = "A member of the Lophiid family of anglerfish. It goes by several different names, however none of them will make it look any prettier, nor any less delicious."
+ icon_state = "monkfish"
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ sprite_height = 7
+ sprite_width = 7
+ beauty = FISH_BEAUTY_UGLY
+ required_temperature_min = MIN_AQUARIUM_TEMP+2
+ required_temperature_max = MIN_AQUARIUM_TEMP+23
+ average_size = 60
+ average_weight = 1400
+ stable_population = 4
+ fish_traits = list(/datum/fish_trait/heavy)
+ fillet_type = /obj/item/food/fishmeat/quality
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = SEAFOOD|BUGS,
+ ),
+ )
+
+/obj/item/fish/monkfish/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ name = pick("monkfish", "fishing-frog", "frog-fish", "sea-devil", "goosefish")
+
+/obj/item/fish/plaice
+ name = "plaice"
+ desc = "Perhaps the most prominent flatfish in the space-market. Nature really pulled out the rolling pin on this one."
+ icon_state = "plaice"
+ sprite_height = 7
+ sprite_width = 6
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ required_temperature_min = MIN_AQUARIUM_TEMP+2
+ required_temperature_max = MIN_AQUARIUM_TEMP+18
+ average_size = 40
+ average_weight = 700
+ stable_population = 5
+ fish_traits = list(/datum/fish_trait/heavy)
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = SEAFOOD|BUGS,
+ ),
+ )
+
diff --git a/code/modules/fishing/fish/types/station.dm b/code/modules/fishing/fish/types/station.dm
new file mode 100644
index 0000000000000..8dd459452ab91
--- /dev/null
+++ b/code/modules/fishing/fish/types/station.dm
@@ -0,0 +1,80 @@
+/obj/item/fish/ratfish
+ name = "ratfish"
+ desc = "A rat exposed to the murky waters of maintenance too long. Any higher power, if it revealed itself, would state that the ratfish's continued existence is extremely unwelcome."
+ icon_state = "ratfish"
+ sprite_width = 7
+ sprite_height = 5
+ random_case_rarity = FISH_RARITY_RARE
+ required_fluid_type = AQUARIUM_FLUID_FRESHWATER
+ stable_population = 10 //set by New, but this is the default config value
+ fillet_type = /obj/item/food/meat/slab/human/mutant/zombie //eww...
+ fish_traits = list(/datum/fish_trait/necrophage)
+ required_temperature_min = MIN_AQUARIUM_TEMP+15
+ required_temperature_max = MIN_AQUARIUM_TEMP+35
+ fish_movement_type = /datum/fish_movement/zippy
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = DAIRY
+ )
+ )
+ beauty = FISH_BEAUTY_DISGUSTING
+
+/obj/item/fish/ratfish/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ //stable pop reflects the config for how many mice migrate. powerful...
+ stable_population = CONFIG_GET(number/mice_roundstart)
+
+/obj/item/fish/sludgefish
+ name = "sludgefish"
+ desc = "A misshapen, fragile, loosely fish-like living goop, the only thing that'd ever thrive in the acidic and claustrophobic cavities of the station's organic waste disposal system."
+ icon_state = "sludgefish"
+ sprite_width = 7
+ sprite_height = 6
+ required_fluid_type = AQUARIUM_FLUID_SULPHWATEVER
+ stable_population = 8
+ average_size = 20
+ average_weight = 400
+ health = 50
+ breeding_timeout = 2.5 MINUTES
+ fish_traits = list(/datum/fish_trait/parthenogenesis, /datum/fish_trait/no_mating)
+ required_temperature_min = MIN_AQUARIUM_TEMP+10
+ required_temperature_max = MIN_AQUARIUM_TEMP+40
+ evolution_types = list(/datum/fish_evolution/purple_sludgefish)
+ beauty = FISH_BEAUTY_NULL
+
+/obj/item/fish/sludgefish/purple
+ name = "purple sludgefish"
+ desc = "A misshapen, fragile, loosely fish-like living goop. This one has developed sexual reproduction mechanisms, and a purple tint to boot."
+ icon_state = "sludgefish_purple"
+ random_case_rarity = FISH_RARITY_NOPE
+ fish_traits = list(/datum/fish_trait/parthenogenesis)
+
+/obj/item/fish/slimefish
+ name = "acquatic slime"
+ desc = "Kids, this is what happens when a slime overcomes its hydrophobic nature. It goes glug glug."
+ icon_state = "slimefish"
+ icon_state_dead = "slimefish_dead"
+ sprite_width = 7
+ sprite_height = 7
+ do_flop_animation = FALSE //it already has a cute bouncy wiggle. :3
+ random_case_rarity = FISH_RARITY_VERY_RARE
+ required_fluid_type = AQUARIUM_FLUID_ANADROMOUS
+ stable_population = 4
+ health = 150
+ fillet_type = /obj/item/slime_extract/grey
+ grind_results = list(/datum/reagent/toxin/slimejelly = 10)
+ fish_traits = list(/datum/fish_trait/toxin_immunity, /datum/fish_trait/crossbreeder)
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = TOXIC,
+ ),
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_REAGENT,
+ FISH_BAIT_VALUE = /datum/reagent/toxin,
+ FISH_BAIT_AMOUNT = 5,
+ ),
+ )
+ required_temperature_min = MIN_AQUARIUM_TEMP+20
+ beauty = FISH_BEAUTY_GREAT
diff --git a/code/modules/fishing/fish/types/syndicate.dm b/code/modules/fishing/fish/types/syndicate.dm
new file mode 100644
index 0000000000000..a3e9a8519b4f3
--- /dev/null
+++ b/code/modules/fishing/fish/types/syndicate.dm
@@ -0,0 +1,256 @@
+///Contains fish that can be found in the syndicate fishing portal setting as well as the ominous fish case.
+/obj/item/fish/emulsijack
+ name = "toxic emulsijack"
+ desc = "Ah, the terrifying emulsijack. Created in a laboratory, the only real use of this slimey, scaleless fish is for completely ruining a tank."
+ icon_state = "emulsijack"
+ random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS
+ required_fluid_type = AQUARIUM_FLUID_ANADROMOUS
+ stable_population = 3
+ sprite_width = 7
+ sprite_height = 3
+ fish_traits = list(/datum/fish_trait/emulsijack)
+ required_temperature_min = MIN_AQUARIUM_TEMP+5
+ required_temperature_max = MIN_AQUARIUM_TEMP+40
+ beauty = FISH_BEAUTY_BAD
+
+/obj/item/fish/donkfish
+ name = "donk co. company patent donkfish"
+ desc = "A lab-grown donkfish. Its invention was an accident for the most part, as it was intended to be consumed in donk pockets. Unfortunately, it tastes horrible, so it has now become a pseudo-mascot."
+ icon_state = "donkfish"
+ random_case_rarity = FISH_RARITY_VERY_RARE
+ stable_population = 4
+ sprite_width = 5
+ sprite_height = 4
+ fillet_type = /obj/item/food/fishmeat/donkfish
+ fish_traits = list(/datum/fish_trait/yucky)
+ required_temperature_min = MIN_AQUARIUM_TEMP+15
+ required_temperature_max = MIN_AQUARIUM_TEMP+28
+ beauty = FISH_BEAUTY_EXCELLENT
+
+/obj/item/fish/jumpercable
+ name = "monocloning jumpercable"
+ desc = "A surprisingly useful if nasty looking creation from the syndicate fish labs. Drop one in a tank, and \
+ watch it self-feed and multiply. Generates more and more power as a growing swarm!"
+ icon_state = "jumpercable"
+ sprite_width = 16
+ sprite_height = 5
+ stable_population = 12
+ average_size = 110
+ average_weight = 6000
+ random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS
+ required_temperature_min = MIN_AQUARIUM_TEMP+10
+ required_temperature_max = MIN_AQUARIUM_TEMP+30
+ favorite_bait = list(/obj/item/stock_parts/power_store/cell/lead)
+ fish_traits = list(
+ /datum/fish_trait/parthenogenesis,
+ /datum/fish_trait/mixotroph,
+ /datum/fish_trait/electrogenesis,
+ )
+ beauty = FISH_BEAUTY_UGLY
+
+/obj/item/fish/chainsawfish
+ name = "chainsawfish"
+ desc = "A very, very angry bioweapon, whose sole purpose is to rip and tear."
+ icon = 'icons/obj/aquarium/wide.dmi'
+ icon_state = "chainsawfish"
+ inhand_icon_state = "chainsawfish"
+ icon_state_dead = "chainsawfish_dead"
+ force = 22
+ demolition_mod = 1.5
+ block_chance = 15
+ attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices")
+ attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice")
+ hitsound = 'sound/weapons/chainsawhit.ogg'
+ sharpness = SHARP_EDGED
+ tool_behaviour = TOOL_SAW
+ toolspeed = 0.5
+ base_pixel_x = -16
+ pixel_x = -16
+ sprite_width = 8
+ sprite_height = 5
+ stable_population = 3
+ average_size = 85
+ average_weight = 2500
+ breeding_timeout = 4.25 MINUTES
+ feeding_frequency = 3 MINUTES
+ health = 180
+ beauty = FISH_BEAUTY_GREAT
+ random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS
+ required_fluid_type = AQUARIUM_FLUID_FRESHWATER
+ fish_movement_type = /datum/fish_movement/accelerando
+ fishing_difficulty_modifier = 30
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = GORE,
+ ),
+ )
+ fish_traits = list(/datum/fish_trait/aggressive, /datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/stinger)
+ required_temperature_min = MIN_AQUARIUM_TEMP+18
+ required_temperature_max = MIN_AQUARIUM_TEMP+26
+
+/obj/item/fish/chainsawfish/Initialize(mapload)
+ . = ..()
+ AddElement(/datum/element/update_icon_updates_onmob)
+
+/obj/item/fish/chainsawfish/update_icon_state()
+ if(status == FISH_DEAD)
+ inhand_icon_state = "chainsawfish_dead"
+ else
+ inhand_icon_state = "chainsawfish"
+ if(HAS_TRAIT(src, TRAIT_WIELDED))
+ inhand_icon_state = "[inhand_icon_state]_wielded"
+ return ..()
+
+/obj/item/fish/chainsawfish/get_force_rank()
+ switch(w_class)
+ if(WEIGHT_CLASS_TINY)
+ force -= 10
+ attack_speed -= 0.2 SECONDS
+ demolition_mod -= 0.4
+ block_chance -= 15
+ armour_penetration -= 10
+ wound_bonus -= 10
+ bare_wound_bonus -= 10
+ toolspeed += 0.6
+ if(WEIGHT_CLASS_SMALL)
+ force -= 8
+ attack_speed -= 0.1 SECONDS
+ demolition_mod -= 0.3
+ block_chance -= 10
+ armour_penetration -= 10
+ wound_bonus -= 10
+ bare_wound_bonus -= 10
+ toolspeed += 0.4
+ if(WEIGHT_CLASS_NORMAL)
+ force -= 5
+ demolition_mod -= 0.15
+ block_chance -= 5
+ armour_penetration -= 5
+ wound_bonus -= 5
+ bare_wound_bonus -= 5
+ toolspeed += 0.2
+ if(WEIGHT_CLASS_HUGE)
+ force += 2
+ attack_speed += 0.2 SECONDS
+ demolition_mod += 0.15
+ armour_penetration += 10
+ block_chance += 10
+ wound_bonus += 10
+ bare_wound_bonus += 5
+ if(WEIGHT_CLASS_GIGANTIC)
+ force += 4
+ attack_speed += 0.4 SECONDS
+ demolition_mod += 0.3
+ block_chance += 20
+ armour_penetration += 20
+ wound_bonus += 15
+ bare_wound_bonus += 10
+ toolspeed -= 0.1
+
+ if(status == FISH_DEAD)
+ force -= 8 + w_class
+ hitsound = SFX_SWING_HIT
+ block_chance -= 25
+ demolition_mod -= 0.3
+ armour_penetration -= 15
+ wound_bonus -= 5
+ bare_wound_bonus -= 5
+ toolspeed += 1
+
+/obj/item/fish/chainsawfish/calculate_fish_force_bonus(bonus_malus)
+ . = ..()
+ armour_penetration += bonus_malus * 3
+ wound_bonus += bonus_malus * 2
+ bare_wound_bonus += bonus_malus * 3
+ block_chance += bonus_malus * 2
+ toolspeed -= bonus_malus * 0.1
+
+/obj/item/fish/pike/armored
+ name = "armored pike"
+ desc = "A long-bodied, metal-clad predator with a snout that almost looks like an halberd. Definitely a weapon to swing around."
+ icon_state = "armored_pike"
+ inhand_icon_state = "armored_pike"
+ attack_verb_continuous = list("attacks", "pokes", "jabs", "tears", "lacerates", "gores")
+ attack_verb_simple = list("attack", "poke", "jab", "tear", "lacerate", "gore")
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ block_sound = 'sound/weapons/parry.ogg'
+ force = 20
+ sharpness = SHARP_EDGED
+ wound_bonus = -15
+ attack_speed = 1 SECONDS
+ block_chance = 25
+ bare_wound_bonus = 15
+ demolition_mod = 0.8
+ armour_penetration = 10
+ stable_population = 3
+ average_weight = 3000
+ breeding_timeout = 5 MINUTES
+ feeding_frequency = 4 MINUTES
+ health = 180
+ random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS
+ beauty = FISH_BEAUTY_GREAT
+ fishing_difficulty_modifier = 20
+ fish_traits = list(/datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/aggressive, /datum/fish_trait/picky_eater, /datum/fish_trait/stinger)
+ compatible_types = list(/obj/item/fish/pike)
+ favorite_bait = list(
+ list(
+ FISH_BAIT_TYPE = FISH_BAIT_FOODTYPE,
+ FISH_BAIT_VALUE = SEAFOOD,
+ ),
+ /obj/item/fish,
+ )
+
+/obj/item/fish/swordfish/get_force_rank()
+ switch(w_class)
+ if(WEIGHT_CLASS_TINY)
+ force -= 11
+ attack_speed -= 0.4 SECONDS
+ block_chance -= 25
+ armour_penetration -= 15
+ wound_bonus -= 15
+ bare_wound_bonus -= 30
+ if(WEIGHT_CLASS_SMALL)
+ force -= 6
+ attack_speed -= 0.3 SECONDS
+ block_chance -= 20
+ armour_penetration -= 10
+ wound_bonus -= 10
+ bare_wound_bonus -= 25
+ if(WEIGHT_CLASS_NORMAL)
+ force -= 4
+ attack_speed -= 0.2 SECONDS
+ block_chance -= 20
+ armour_penetration -= 5
+ wound_bonus -= 10
+ bare_wound_bonus -= 15
+ if(WEIGHT_CLASS_HUGE)
+ force += 3
+ attack_speed += 0.2 SECONDS
+ block_chance += 10
+ demolition_mod += 0.1
+ armour_penetration += 5
+ wound_bonus += 10
+ bare_wound_bonus += 5
+ if(WEIGHT_CLASS_GIGANTIC)
+ force += 7
+ attack_speed += 0.3 SECONDS
+ demolition_mod += 0.2
+ block_chance += 20
+ armour_penetration += 10
+ wound_bonus += 15
+ bare_wound_bonus += 10
+
+ if(status == FISH_DEAD)
+ force -= 5 + w_class
+ block_chance -= 15
+ armour_penetration -= 10
+ wound_bonus -= 5
+ bare_wound_bonus -= 15
+
+/obj/item/fish/pike/armored/calculate_fish_force_bonus(bonus_malus)
+ . = ..()
+ armour_penetration += bonus_malus * 3
+ wound_bonus += bonus_malus * 2
+ bare_wound_bonus += bonus_malus * 4
+ block_chance += bonus_malus * 4
diff --git a/code/modules/fishing/fish/types/tiziran.dm b/code/modules/fishing/fish/types/tiziran.dm
new file mode 100644
index 0000000000000..a39e82ce6c422
--- /dev/null
+++ b/code/modules/fishing/fish/types/tiziran.dm
@@ -0,0 +1,69 @@
+//Tiziran Fish.
+
+/obj/item/fish/dwarf_moonfish
+ name = "dwarf moonfish"
+ desc = "Ordinarily in the wild, the Zagoskian moonfish is around the size of a tuna, however through selective breeding a smaller breed suitable for being kept as an aquarium pet has been created."
+ icon_state = "dwarf_moonfish"
+ sprite_height = 6
+ sprite_width = 6
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ stable_population = 2
+ fillet_type = /obj/item/food/fishmeat/moonfish
+ average_size = 60
+ average_weight = 1000
+ required_temperature_min = MIN_AQUARIUM_TEMP+20
+ required_temperature_max = MIN_AQUARIUM_TEMP+30
+ beauty = FISH_BEAUTY_GOOD
+
+/obj/item/fish/gunner_jellyfish
+ name = "gunner jellyfish"
+ desc = "So called due to their resemblance to an artillery shell, the gunner jellyfish is native to Tizira, where it is enjoyed as a delicacy. Produces a mild hallucinogen that is destroyed by cooking."
+ icon_state = "gunner_jellyfish"
+ sprite_height = 4
+ sprite_width = 5
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ stable_population = 4
+ fillet_type = /obj/item/food/fishmeat/gunner_jellyfish
+ required_temperature_min = MIN_AQUARIUM_TEMP+24
+ required_temperature_max = MIN_AQUARIUM_TEMP+32
+ beauty = FISH_BEAUTY_GOOD
+
+/obj/item/fish/needlefish
+ name = "needlefish"
+ desc = "A tiny, transparent fish which resides in large schools in the oceans of Tizira. A common food for other, larger fish."
+ icon_state = "needlefish"
+ sprite_height = 3
+ sprite_width = 7
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ stable_population = 12
+ breeding_timeout = 1 MINUTES
+ fillet_type = null
+ average_size = 20
+ average_weight = 300
+ fish_traits = list(/datum/fish_trait/carnivore)
+ required_temperature_min = MIN_AQUARIUM_TEMP+10
+ required_temperature_max = MIN_AQUARIUM_TEMP+32
+
+/obj/item/fish/needlefish/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ add_traits(list(TRAIT_FISHING_BAIT, TRAIT_GOOD_QUALITY_BAIT), INNATE_TRAIT)
+
+/obj/item/fish/armorfish
+ name = "armorfish"
+ desc = "A small shellfish native to Tizira's oceans, known for its exceptionally hard shell. Consumed similarly to prawns."
+ icon_state = "armorfish"
+ sprite_height = 5
+ sprite_width = 6
+ average_size = 25
+ average_weight = 350
+ required_fluid_type = AQUARIUM_FLUID_SALTWATER
+ stable_population = 10
+ breeding_timeout = 1.25 MINUTES
+ fillet_type = /obj/item/food/fishmeat/armorfish
+ fish_movement_type = /datum/fish_movement/slow
+ required_temperature_min = MIN_AQUARIUM_TEMP+10
+ required_temperature_max = MIN_AQUARIUM_TEMP+32
+
+/obj/item/fish/armorfish/Initialize(mapload, apply_qualities = TRUE)
+ . = ..()
+ add_traits(list(TRAIT_FISHING_BAIT, TRAIT_GOOD_QUALITY_BAIT), INNATE_TRAIT)
diff --git a/code/modules/fishing/fish_catalog.dm b/code/modules/fishing/fish_catalog.dm
index 49a84413ded06..f0880804f8eb0 100644
--- a/code/modules/fishing/fish_catalog.dm
+++ b/code/modules/fishing/fish_catalog.dm
@@ -90,7 +90,7 @@
if(source.catalog_description && (fish_type in source.fish_table))
spot_descriptions += source.catalog_description
.["spots"] = english_list(spot_descriptions, nothing_text = "Unknown")
- var/list/fish_list_properties = collect_fish_properties()
+ var/list/fish_list_properties = SSfishing.fish_properties
var/list/fav_bait = fish_list_properties[fishy][NAMEOF(fishy, favorite_bait)]
var/list/disliked_bait = fish_list_properties[fishy][NAMEOF(fishy, disliked_bait)]
var/list/bait_list = list()
diff --git a/code/modules/fishing/fish_movement.dm b/code/modules/fishing/fish_movement.dm
new file mode 100644
index 0000000000000..a328903617f62
--- /dev/null
+++ b/code/modules/fishing/fish_movement.dm
@@ -0,0 +1,214 @@
+/// Any lower than this, and the target position of the fish is considered null
+#define FISH_TARGET_MIN_DISTANCE 6
+/// The friction applied to fish jumps, so that it decelerates over time
+#define FISH_FRICTION_MULT 0.9
+/// Used to decide whether the fish can jump in a certain direction
+#define FISH_SHORT_JUMP_MIN_DISTANCE 100
+/// The maximum distance for a short jump
+#define FISH_SHORT_JUMP_MAX_DISTANCE 200
+
+///Fish movements are simple datums, generated by the fishing minigame, that represent how the fish moves suring the minigame.
+/datum/fish_movement
+ /// The minigame that spawned us
+ var/datum/fishing_challenge/master
+ /// How many times move_fish() has been called
+ var/times_fired = 0
+ /// How likely the fish is to perform a standard jump, then multiplied by difficulty
+ var/short_jump_chance = 2.25
+ /// How likely the fish is to perform a long jump, then multiplied by difficulty
+ var/long_jump_chance = 0.0625
+ /// The speed limit for the short jump
+ var/short_jump_velocity_limit = 400
+ /// The speed limit for the long jump
+ var/long_jump_velocity_limit = 200
+ /// The current speed limit used
+ var/current_velocity_limit
+ /// The base velocity of the fish, which may affect jump distances and falling speed.
+ var/fish_idle_velocity = 0
+ /// A position on the slider the fish wants to get to
+ var/target_position
+ /// If true, the fish can jump while a target position is set, thus overriding it
+ var/can_interrupt_move = TRUE
+ /// The current speed the fish is moving at
+ var/fish_velocity = 0
+
+/datum/fish_movement/New(datum/fishing_challenge/master)
+ src.master = master
+
+/**
+ * Proc that adjusts movement values to the difficulty of the minigame.
+ * The operations can be a tad complex, but basically it ensures that jump
+ * chances with a probability higher than 1% increase in a smooth curve so that
+ * they still reach 100% prob when the difficulty peakes.
+ */
+/datum/fish_movement/proc/adjust_to_difficulty()
+ var/square_angle_rad = TORADIANS(90)
+ var/zero_one_difficulty = master.difficulty/100
+ if(short_jump_chance > 1)
+ short_jump_chance = (zero_one_difficulty**(square_angle_rad-TORADIANS(arctan(short_jump_chance * 1/square_angle_rad))))*100
+ else
+ short_jump_chance *= master.difficulty
+ if(long_jump_chance > 1)
+ long_jump_chance = (zero_one_difficulty**(square_angle_rad-TORADIANS(arctan(long_jump_chance * 1/square_angle_rad))))*100
+ else
+ long_jump_chance *= master.difficulty
+
+///The main proc, called by minigame every SSfishing tick while it's in the 'active' phase.
+/datum/fish_movement/proc/move_fish(seconds_per_tick)
+ times_fired++
+ /**
+ * The jump chances are meant to run every odd tick (each every decisecond)
+ * We cannot do it every tick because the fish would be jumpier than intended
+ * and we cannot cut the chances in half to fit on each tick, because the maximum probability
+ * would go from 100% to 75%.
+ */
+ var/can_roll = times_fired % 2
+
+ var/long_chance = long_jump_chance * seconds_per_tick * (1/seconds_per_tick)
+ var/short_chance = short_jump_chance * seconds_per_tick * (1/seconds_per_tick)
+
+ // If we have the target but we're close enough, mark as target reached
+ if(abs(target_position - master.fish_position) < FISH_TARGET_MIN_DISTANCE)
+ target_position = null
+
+ // Switching to new long jump target can interrupt any other
+ if(can_roll && (can_interrupt_move || isnull(target_position)) && prob(long_chance))
+ /**
+ * Move at least 0.75 to full of the availible bar in given direction,
+ * and more likely to move in the direction where there's more space
+ */
+ var/distance_from_top = FISHING_MINIGAME_AREA - master.fish_position - master.fish_height
+ var/distance_from_bottom = master.fish_position
+ var/top_chance
+ if(distance_from_top < FISH_SHORT_JUMP_MIN_DISTANCE)
+ top_chance = 0
+ else
+ top_chance = (distance_from_top/max(distance_from_bottom, 1)) * 100
+ var/new_target = master.fish_position
+ if(prob(top_chance))
+ new_target += distance_from_top * rand(75, 100)/100
+ else
+ new_target -= distance_from_bottom * rand(75, 100)/100
+ target_position = round(new_target)
+ current_velocity_limit = long_jump_velocity_limit
+
+ // Move towards target
+ if(!isnull(target_position))
+ var/distance = target_position - master.fish_position
+ // about 5 at diff 15 , 10 at diff 30, 30 at diff 100
+ var/acceleration_mult = get_acceleration(seconds_per_tick)
+ var/target_acceleration = distance * acceleration_mult * seconds_per_tick
+
+ fish_velocity = fish_velocity * FISH_FRICTION_MULT + target_acceleration
+ else if(can_roll && prob(short_chance))
+ var/distance_from_top = FISHING_MINIGAME_AREA - master.fish_position - master.fish_height
+ var/distance_from_bottom = master.fish_position
+ var/jump_length
+ if(distance_from_top >= FISH_SHORT_JUMP_MIN_DISTANCE)
+ jump_length = rand(FISH_SHORT_JUMP_MIN_DISTANCE, FISH_SHORT_JUMP_MAX_DISTANCE)
+ if(distance_from_bottom >= FISH_SHORT_JUMP_MIN_DISTANCE && (!jump_length || prob(50)))
+ jump_length = -rand(FISH_SHORT_JUMP_MIN_DISTANCE, FISH_SHORT_JUMP_MAX_DISTANCE)
+ target_position = clamp(master.fish_position + jump_length, 0, FISHING_MINIGAME_AREA - master.fish_height)
+ current_velocity_limit = short_jump_velocity_limit
+
+ fish_velocity = clamp(fish_velocity + fish_idle_velocity, -current_velocity_limit, current_velocity_limit)
+ set_fish_position(seconds_per_tick)
+
+///Proc that returns the acceleration of the fish during the minigame.
+/datum/fish_movement/proc/get_acceleration(seconds_per_tick)
+ return 0.3 * master.difficulty + 0.5
+
+///Called at the end of move_fish(), for updating the position of the fish in the fishing minigame.
+/datum/fish_movement/proc/set_fish_position(seconds_per_tick)
+ master.fish_position = clamp(master.fish_position + fish_velocity * seconds_per_tick, 0, FISHING_MINIGAME_AREA - master.fish_height)
+
+///Generic fish movement datum that only performs slow, uninterrupted long jumps
+/datum/fish_movement/slow
+ short_jump_chance = 0
+ long_jump_chance = 1.5
+ long_jump_velocity_limit = 150
+ can_interrupt_move = FALSE
+
+///Generic fish movement datum with triple the short jump chance.
+/datum/fish_movement/zippy
+ short_jump_chance = parent_type::short_jump_chance * 3
+
+///fish movement datum that progressively gets faster until acceleration and velocity are double the starting ones.
+/datum/fish_movement/accelerando
+ ///The jump velocity to add each tick
+ var/short_jump_vel_add
+ ///The long jump velocity to add each tick
+ var/long_jump_vel_add
+ ///Time to reach full speed, in seconds.
+ var/accel_time_cap = 30
+
+/datum/fish_movement/accelerando/move_fish(seconds_per_tick)
+ var/seconds_elapsed = (times_fired * seconds_per_tick)
+ if(seconds_elapsed >= accel_time_cap)
+ return ..()
+ if(!times_fired) //First tick, cache the initial jump velocities
+ short_jump_vel_add = short_jump_velocity_limit/accel_time_cap
+ long_jump_vel_add = long_jump_velocity_limit/accel_time_cap
+ return ..()
+
+ if(current_velocity_limit)
+ var/vel_add = current_velocity_limit == short_jump_velocity_limit ? short_jump_vel_add : long_jump_vel_add
+ current_velocity_limit += round(vel_add * seconds_per_tick, 0.01)
+
+ short_jump_velocity_limit += round(short_jump_vel_add * seconds_per_tick, 0.01)
+ long_jump_velocity_limit += round(long_jump_vel_add * seconds_per_tick, 0.01)
+ return ..()
+
+/datum/fish_movement/accelerando/get_acceleration(seconds_per_tick)
+ var/acceleration = ..()
+ return acceleration + min(acceleration, acceleration * times_fired * seconds_per_tick / accel_time_cap)
+
+/datum/fish_movement/accelerando/set_fish_position(seconds_per_tick)
+ fish_velocity = round(fish_velocity)
+ return ..()
+
+///Fish movement datum that updates the fish position twice per second.
+/datum/fish_movement/choppy
+ ///We keep of the theorical fish position to eventually use
+ var/faux_position = 0
+
+/datum/fish_movement/choppy/set_fish_position(seconds_per_tick)
+ faux_position = clamp(faux_position + fish_velocity * seconds_per_tick, 0, FISHING_MINIGAME_AREA - master.fish_height)
+ if(!((times_fired * SSfishing.wait) % (0.5 SECONDS)))
+ master.fish_position = faux_position
+
+///Fish movement datum that weakly pushes the fish up and then down with greater force once it reaches the top of the minigame.
+/datum/fish_movement/plunger
+ ///Is the fish plunging to the bottom of the minigame area, or should it swim up?
+ var/is_plunging = TRUE
+ ///The added idle velocity when plunging
+ var/plunging_speed = -22
+
+/datum/fish_movement/plunger/adjust_to_difficulty()
+ . = ..()
+ //Adjust the fleeing velocity, up to five times the initial value.
+ plunging_speed += round(plunging_speed * master.difficulty * 0.03)
+ fish_idle_velocity += plunging_speed //so it can be safely subtracted if the fish starts at the bottom.
+
+/datum/fish_movement/plunger/move_fish(seconds_per_tick)
+ var/fish_area = FISHING_MINIGAME_AREA - master.fish_height
+ if(is_plunging)
+ if(target_position > master.fish_position) //nothing should stop us from plunging.
+ target_position = null
+ var/dist_bot_percent = master.fish_position/fish_area
+ if(dist_bot_percent <= 0.04)
+ fish_idle_velocity -= plunging_speed
+ is_plunging = FALSE
+ else
+ var/dist_top_percent = (fish_area - master.fish_position)/fish_area
+ if(dist_top_percent <= 0.04)
+ fish_idle_velocity += plunging_speed
+ is_plunging = TRUE
+
+ return ..()
+
+
+#undef FISH_TARGET_MIN_DISTANCE
+#undef FISH_FRICTION_MULT
+#undef FISH_SHORT_JUMP_MIN_DISTANCE
+#undef FISH_SHORT_JUMP_MAX_DISTANCE
diff --git a/code/modules/fishing/fishing_equipment.dm b/code/modules/fishing/fishing_equipment.dm
index f6b49a9b52314..e20f6c54a9104 100644
--- a/code/modules/fishing/fishing_equipment.dm
+++ b/code/modules/fishing/fishing_equipment.dm
@@ -52,7 +52,7 @@
*/
/obj/item/fishing_line/auto_reel
name = "fishing line auto-reel"
- desc = "A fishing line that automatically starts reeling in fish the moment they bite. Also good for hurling things at yourself."
+ desc = "A fishing line that automatically spins lures and begins reeling in fish the moment it bites. Also good for hurling things towards you."
icon_state = "reel_auto"
fishing_line_traits = FISHING_LINE_AUTOREEL
line_color = "#F88414"
@@ -163,6 +163,20 @@
rod_overlay_icon_state = "hook_treasure_overlay"
chasm_detritus_type = /datum/chasm_detritus/restricted/objects
+/obj/item/fishing_hook/magnet/Initialize(mapload)
+ . = ..()
+ RegisterSignal(src, COMSIG_FISHING_EQUIPMENT_SLOTTED, PROC_REF(hook_equipped))
+
+///We make sure that the fishng rod doesn't need a bait to reliably catch non-fish loot.
+/obj/item/fishing_hook/magnet/proc/hook_equipped(datum/source, obj/item/fishing_rod/rod)
+ SIGNAL_HANDLER
+ ADD_TRAIT(rod, TRAIT_ROD_REMOVE_FISHING_DUD, type)
+ RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(on_removed))
+
+/obj/item/fishing_hook/magnet/proc/on_removed(atom/movable/source, atom/old_loc, dir, forced)
+ SIGNAL_HANDLER
+ REMOVE_TRAIT(old_loc, TRAIT_ROD_REMOVE_FISHING_DUD, type)
+ UnregisterSignal(src, COMSIG_MOVABLE_MOVED)
/obj/item/fishing_hook/magnet/get_hook_bonus_multiplicative(fish_type, datum/fish_source/source)
if(fish_type == FISHING_DUD || ispath(fish_type, /obj/item/fish))
@@ -171,7 +185,6 @@
// We multiply the odds by five for everything that's not a fish nor a dud
return MAGNET_HOOK_BONUS_MULTIPLIER
-
/obj/item/fishing_hook/shiny
name = "shiny lure hook"
icon_state = "gold_shiny"
@@ -260,7 +273,6 @@
// Can hold fishing rod despite the size
var/static/list/exception_cache = typecacheof(list(
/obj/item/fishing_rod,
- /obj/item/fishing_line,
))
atom_storage.exception_hold = exception_cache
@@ -269,6 +281,7 @@
new /obj/item/fishing_rod/unslotted(src)
new /obj/item/fishing_hook(src)
new /obj/item/fishing_line(src)
+ new /obj/item/paper/paperslip/fishing_tip(src)
/obj/item/storage/toolbox/fishing/small
name = "compact fishing toolbox"
@@ -285,31 +298,121 @@
new /obj/item/fishing_rod/unslotted(src)
new /obj/item/fishing_hook(src)
new /obj/item/fishing_line(src)
+ new /obj/item/paper/paperslip/fishing_tip(src)
+
+/obj/item/storage/toolbox/fishing/master
+ name = "super fishing toolbox"
+ desc = "Contains EVERYTHING (almost) you need for your fishing trip."
+ icon_state = "gold"
+ inhand_icon_state = "toolbox_gold"
+
+/obj/item/storage/toolbox/fishing/master/PopulateContents()
+ new /obj/item/fishing_rod/telescopic/master(src)
+ new /obj/item/storage/box/fishing_hooks/master(src)
+ new /obj/item/storage/box/fishing_lines/master(src)
+ new /obj/item/bait_can/super_baits(src)
+ new /obj/item/fish_feed(src)
+ new /obj/item/aquarium_kit(src)
+ new /obj/item/fish_analyzer(src)
+ new /obj/item/experi_scanner(src)
/obj/item/storage/box/fishing_hooks
name = "fishing hook set"
+ illustration = "fish"
/obj/item/storage/box/fishing_hooks/PopulateContents()
- . = ..()
new /obj/item/fishing_hook/magnet(src)
new /obj/item/fishing_hook/shiny(src)
new /obj/item/fishing_hook/weighted(src)
+/obj/item/storage/box/fishing_hooks/master
+
+/obj/item/storage/box/fishing_hooks/master/PopulateContents()
+ . = ..()
+ new /obj/item/fishing_hook/stabilized(src)
+ new /obj/item/fishing_hook/jaws(src)
+
/obj/item/storage/box/fishing_lines
name = "fishing line set"
+ illustration = "fish"
/obj/item/storage/box/fishing_lines/PopulateContents()
- . = ..()
new /obj/item/fishing_line/bouncy(src)
new /obj/item/fishing_line/reinforced(src)
new /obj/item/fishing_line/cloaked(src)
+/obj/item/storage/box/fishing_lines/master
+
+/obj/item/storage/box/fishing_lines/master/PopulateContents()
+ . = ..()
+ new /obj/item/fishing_line/auto_reel(src)
+
/obj/item/storage/box/fish_debug
name = "box full of fish"
+ illustration = "fish"
/obj/item/storage/box/fish_debug/PopulateContents()
for(var/fish_type in subtypesof(/obj/item/fish))
new fish_type(src)
+///Used to give the average player info about fishing stuff that's unknown to many.
+/obj/item/paper/paperslip/fishing_tip
+ name = "fishing tip"
+ desc = "A slip of paper containing a pearl of wisdom about fishing within it, though you wish it were an actual pearl."
+
+/obj/item/paper/paperslip/fortune/Initialize(mapload)
+ default_raw_text = pick(GLOB.fishing_tips)
+ return ..()
+
+///From the fishing mystery box. It's basically a lazarus and a few bottles of strange reagents.
+/obj/item/storage/box/fish_revival_kit
+ name = "fish revival kit"
+ desc = "Become a fish doctor today."
+ illustration = "fish"
+
+/obj/item/storage/box/fish_revival_kit/PopulateContents()
+ new /obj/item/lazarus_injector(src)
+ new /obj/item/reagent_containers/cup/bottle/strange_reagent(src)
+ new /obj/item/reagent_containers/cup(src) //to splash the reagents on the fish.
+ new /obj/item/storage/fish_case(src)
+ new /obj/item/storage/fish_case(src)
+
+/obj/item/storage/box/fishing_lures
+ name = "fishing lures set"
+ desc = "A small tackle box containing all the fishing lures you will ever need to curb randomness."
+ icon_state = "plasticbox"
+ foldable_result = null
+ illustration = "fish"
+
+/obj/item/storage/box/fishing_lures/PopulateContents()
+ new /obj/item/paper/lures_instructions(src)
+ var/list/typesof = typesof(/obj/item/fishing_lure)
+ for(var/type in typesof)
+ new type (src)
+ atom_storage.set_holdable(/obj/item/fishing_lure) //can only hold lures
+ //adds an extra slot, so we can put back the lures even if we didn't take out the instructions.
+ atom_storage.max_slots = length(typesof) + 1
+ atom_storage.max_total_storage = WEIGHT_CLASS_SMALL * (atom_storage.max_slots + 1)
+
+/obj/item/paper/lures_instructions
+ name = "instructions paper"
+ icon_state = "slipfull"
+ show_written_words = FALSE
+ desc = "A piece of grey paper with a how-to for dummies about fishing lures printed on it. Smells cheap."
+ default_raw_text = "Thank you for buying this set.
\
+ This a simple non-exhaustive set of instructions on how to use fishing lures, some information may \
+ be slightly incorrect or oversimplified.
\
+
+ First and foremost, fishing lures are inedible, artificial baits sturdy enough to not end up being \
+ consumed by the hungry fish. However, they need to be spun at intervals to replicate \
+ the motion of a prey or organic bait and tempt the fish, since a piece of plastic and metal ins't \
+ all that appetitizing by itself. Different lures can be used to catch different fish.
\
+
+ To help you, each lure comes with a small light diode that's attached to the float of your fishing rod. \
+ A float is basically the thing bobbing up'n'down above the fishing spot. \
+ The light will flash green and a sound cue will be played when the lure is ready to be spun. \
+ Do not spin while the light is still red.
\
+ That's all, best of luck to your angling journey."
+
#undef MAGNET_HOOK_BONUS_MULTIPLIER
#undef RESCUE_HOOK_FISH_MULTIPLIER
diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm
index 9c70d474a62d7..fc30d2aa6970f 100644
--- a/code/modules/fishing/fishing_minigame.dm
+++ b/code/modules/fishing/fishing_minigame.dm
@@ -1,20 +1,10 @@
-// Lure bobbing
+// float bobbing
#define WAIT_PHASE 1
// Click now to start tgui part
#define BITING_PHASE 2
// UI minigame phase
#define MINIGAME_PHASE 3
-/// The height of the minigame slider. Not in pixels, but minigame units.
-#define FISHING_MINIGAME_AREA 1000
-/// Any lower than this, and the target position of the fish is considered null
-#define FISH_TARGET_MIN_DISTANCE 6
-/// The friction applied to fish jumps, so that it decelerates over time
-#define FISH_FRICTION_MULT 0.9
-/// Used to decide whether the fish can jump in a certain direction
-#define FISH_SHORT_JUMP_MIN_DISTANCE 100
-/// The maximum distance for a short jump
-#define FISH_SHORT_JUMP_MAX_DISTANCE 200
// Acceleration mod when bait is over fish
#define FISH_ON_BAIT_ACCELERATION_MULT 0.6
/// The minimum velocity required for the bait to bounce
@@ -47,8 +37,6 @@
var/start_time
/// Is it finished (either by win/lose or window closing)
var/completed = FALSE
- /// Fish AI type to use
- var/fish_ai = FISH_AI_DUMB
/// Rule modifiers (eg weighted bait)
var/special_effects = NONE
/// A list of possible active minigame effects. If not empty, one will be picked from time to time.
@@ -65,16 +53,18 @@
var/phase = WAIT_PHASE
// Timer for the next phase
var/next_phase_timer
+ // The last time we clicked during the baiting phase
+ var/last_baiting_click
/// Fishing mob
var/mob/user
/// Rod that is used for the challenge
var/obj/item/fishing_rod/used_rod
- /// Lure visual
- var/obj/effect/fishing_lure/lure
+ /// float visual
+ var/obj/effect/fishing_float/float
/// Background icon state from fishing_hud.dmi
var/background = "background_default"
/// Fish icon state from fishing_hud.dmi
- var/fish_icon = "fish"
+ var/fish_icon = FISH_ICON_DEF
/// Fishing line visual
var/datum/beam/fishing_line
@@ -93,8 +83,6 @@
var/fish_position = 0
/// The position of the bait on the minigame slider
var/bait_position = 0
- /// The current speed the fish is moving at
- var/fish_velocity = 0
/// The current speed the bait is moving at
var/bait_velocity = 0
@@ -105,22 +93,7 @@
/// How much completion is gained per second when the bait area is intersecting with the fish's
var/completion_gain = 5
- /// How likely the fish is to perform a standard jump, then multiplied by difficulty
- var/short_jump_chance = 2.25
- /// How likely the fish is to perform a long jump, then multiplied by difficulty
- var/long_jump_chance = 0.0625
- /// The speed limit for the short jump
- var/short_jump_velocity_limit = 400
- /// The speed limit for the long jump
- var/long_jump_velocity_limit = 200
- /// The current speed limit used
- var/current_velocity_limit = 200
- /// The base velocity of the fish, which may affect jump distances and falling speed.
- var/fish_idle_velocity = 0
- /// A position on the slider the fish wants to get to
- var/target_position
- /// If true, the fish can jump while a target position is set, thus overriding it
- var/can_interrupt_move = TRUE
+ var/datum/fish_movement/mover
/// Whether the bait is idle or reeling up or down (left and right click)
var/reeling_state = REELING_STATE_IDLE
@@ -139,29 +112,27 @@
src.reward_path = reward_path
src.used_rod = rod
var/atom/spot = comp.parent
- lure = new(get_turf(spot), spot)
+ float = new(get_turf(spot), spot)
+ float.spin_frequency = rod.spin_frequency
RegisterSignal(spot, COMSIG_QDELETING, PROC_REF(on_spot_gone))
RegisterSignal(comp.fish_source, COMSIG_FISHING_SOURCE_INTERRUPT_CHALLENGE, PROC_REF(interrupt_challenge))
comp.fish_source.RegisterSignal(src, COMSIG_FISHING_CHALLENGE_COMPLETED, TYPE_PROC_REF(/datum/fish_source, on_challenge_completed))
background = comp.fish_source.background
+
/// Fish minigame properties
if(ispath(reward_path,/obj/item/fish))
var/obj/item/fish/fish = reward_path
- fish_ai = initial(fish.fish_ai_type)
- switch(fish_ai)
- if(FISH_AI_ZIPPY) // Keeps on jumping
- short_jump_chance *= 3
- if(FISH_AI_SLOW) // Only does long jump, and doesn't change direction until it gets there
- short_jump_chance = 0
- long_jump_chance = 1.5
- long_jump_velocity_limit = 150
- long_jump_velocity_limit = FALSE
+ var/movement_path = initial(fish.fish_movement_type)
+ mover = new movement_path(src)
// Apply fish trait modifiers
- var/list/fish_list_properties = collect_fish_properties()
+ var/list/fish_list_properties = SSfishing.fish_properties
var/list/fish_traits = fish_list_properties[fish][NAMEOF(fish, fish_traits)]
for(var/fish_trait in fish_traits)
var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait]
trait.minigame_mod(rod, user, src)
+ else
+ mover = new /datum/fish_movement(src)
+
/// Enable special parameters
if(rod.line)
completion_gain += 1 // Any fishing line will provide a small boost by default
@@ -196,24 +167,9 @@
completion -= MAX_FISH_COMPLETION_MALUS * (difficulty * 0.01)
if(HAS_MIND_TRAIT(user, TRAIT_REVEAL_FISH))
- fish_icon = GLOB.specific_fish_icons[reward_path] || "fish"
+ fish_icon = GLOB.specific_fish_icons[reward_path] || FISH_ICON_DEF
- /**
- * If the chances are higher than 1% (100% at maximum difficulty), they'll scale
- * less than proportionally (exponent less than 1) instead.
- * This way we ensure fish with high jump chances won't get TOO jumpy until
- * they near the maximum difficulty, at which they hit 100%
- */
- var/square_angle_rad = TORADIANS(90)
- var/zero_one_difficulty = difficulty/100
- if(short_jump_chance > 1)
- short_jump_chance = (zero_one_difficulty**(square_angle_rad-TORADIANS(arctan(short_jump_chance * 1/square_angle_rad))))*100
- else
- short_jump_chance *= difficulty
- if(long_jump_chance > 1)
- long_jump_chance = (zero_one_difficulty**(square_angle_rad-TORADIANS(arctan(long_jump_chance * 1/square_angle_rad))))*100
- else
- long_jump_chance *= difficulty
+ mover.adjust_to_difficulty()
bait_height -= round(difficulty * BAIT_HEIGHT_DIFFICULTY_MALUS)
bait_pixel_height = round(MINIGAME_BAIT_HEIGHT * (bait_height/initial(bait_height)), 1)
@@ -225,16 +181,16 @@
//Stops the line snapped message from appearing everytime the minigame is over.
UnregisterSignal(fishing_line, COMSIG_QDELETING)
QDEL_NULL(fishing_line)
- if(lure)
- QDEL_NULL(lure)
+ QDEL_NULL(float)
SStgui.close_uis(src)
user = null
used_rod = null
+ QDEL_NULL(mover)
return ..()
/datum/fishing_challenge/proc/send_alert(message)
- var/turf/lure_turf = get_turf(lure)
- lure_turf?.balloon_alert(user, message)
+ var/turf/float_turf = get_turf(float)
+ float_turf?.balloon_alert(user, message)
/datum/fishing_challenge/proc/on_spot_gone(datum/source)
SIGNAL_HANDLER
@@ -242,50 +198,115 @@
interrupt()
/datum/fishing_challenge/proc/interrupt_challenge(datum/source, reason)
+ SIGNAL_HANDLER
if(reason)
send_alert(reason)
interrupt()
/datum/fishing_challenge/proc/start(mob/living/user)
/// Create fishing line visuals
- if(used_rod.display_fishing_line)
- fishing_line = used_rod.create_fishing_line(lure, target_py = 5)
+ if(!used_rod.internal)
+ fishing_line = used_rod.create_fishing_line(float, user, target_py = 5)
+ if(isnull(fishing_line)) //couldn't create a fishing line, probably because we don't have a good line of sight.
+ qdel(src)
+ return
RegisterSignal(fishing_line, COMSIG_QDELETING, PROC_REF(on_line_deleted))
else //if the rod doesnt have a fishing line, then it ends when they move away
- RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_user_move))
+ RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_float_or_user_move))
+ RegisterSignal(float, COMSIG_MOVABLE_MOVED, PROC_REF(on_float_or_user_move))
+ RegisterSignal(user, SIGNAL_ADDTRAIT(TRAIT_HANDS_BLOCKED), PROC_REF(on_hands_blocked))
+ RegisterSignal(user, SIGNAL_REMOVETRAIT(TRAIT_PROFOUND_FISHER), PROC_REF(no_longer_fishing))
active_effects = bitfield_to_list(special_effects & FISHING_MINIGAME_ACTIVE_EFFECTS)
// If fishing line breaks los / rod gets dropped / deleted
RegisterSignal(used_rod, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self))
- ADD_TRAIT(user, TRAIT_GONE_FISHING, REF(src))
+ ADD_TRAIT(user, TRAIT_GONE_FISHING, WEAKREF(src))
user.add_mood_event("fishing", /datum/mood_event/fishing)
RegisterSignal(user, COMSIG_MOB_CLICKON, PROC_REF(handle_click))
start_baiting_phase()
to_chat(user, span_notice("You start fishing..."))
- playsound(lure, 'sound/effects/splash.ogg', 100)
+ playsound(float, 'sound/effects/splash.ogg', 100)
+
+///Set the timers for lure that need to be spun at intervals.
+/datum/fishing_challenge/proc/set_lure_timers()
+ float.spin_ready = FALSE
+ addtimer(CALLBACK(src, PROC_REF(set_lure_ready)), float.spin_frequency[1], TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_DELETE_ME)
+ addtimer(CALLBACK(src, PROC_REF(missed_lure)), float.spin_frequency[2], TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_DELETE_ME)
+ float.update_appearance(UPDATE_OVERLAYS)
+
+/datum/fishing_challenge/proc/set_lure_ready()
+ if(phase != WAIT_PHASE)
+ return
+ float.spin_ready = TRUE
+ float.update_appearance(UPDATE_OVERLAYS)
+ if(special_effects & FISHING_MINIGAME_AUTOREEL)
+ addtimer(CALLBACK(src, PROC_REF(auto_spin)), 0.2 SECONDS)
+ playsound(float, 'sound/machines/ping.ogg', 10, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
+
+/datum/fishing_challenge/proc/auto_spin()
+ if(phase != WAIT_PHASE || !float.spin_ready)
+ return
+ float.spin_ready = FALSE
+ float.update_appearance(UPDATE_OVERLAYS)
+ set_lure_timers()
+ send_alert("spun")
+
+/datum/fishing_challenge/proc/missed_lure()
+ if(phase != WAIT_PHASE)
+ return
+ send_alert("miss!")
+ start_baiting_phase(TRUE) //Add in another 3 to 5 seconds for not spinning the lure.
/datum/fishing_challenge/proc/on_line_deleted(datum/source)
SIGNAL_HANDLER
fishing_line = null
- ///The lure may be out of sight if the user has moed around a corner, so the message should be displayed over him instead.
+ ///The float may be out of sight if the user has moed around a corner, so the message should be displayed over him instead.
user.balloon_alert(user, user.is_holding(used_rod) ? "line snapped" : "rod dropped")
interrupt()
-/datum/fishing_challenge/proc/on_user_move(datum/source)
+/datum/fishing_challenge/proc/on_float_or_user_move(datum/source)
SIGNAL_HANDLER
- user.balloon_alert(user, "too far!")
+ if(!user.CanReach(float))
+ user.balloon_alert(user, "too far!")
+ interrupt()
+
+/datum/fishing_challenge/proc/on_hands_blocked(datum/source)
+ SIGNAL_HANDLER
+ if(completed) //the rod was dropped and therefore challenge already completed.
+ return
+ user.balloon_alert(user, "hands blocked!")
+ interrupt()
+
+/datum/fishing_challenge/proc/no_longer_fishing(datum/source)
+ SIGNAL_HANDLER
+ user.balloon_alert(user, "interrupted!")
interrupt()
/datum/fishing_challenge/proc/handle_click(mob/source, atom/target, modifiers)
SIGNAL_HANDLER
- //You need to be holding the rod to use it.
+ if(HAS_TRAIT(source, TRAIT_HANDS_BLOCKED)) //blocked, can't do stuff
+ return
+ //Doing other stuff
if(LAZYACCESS(modifiers, SHIFT_CLICK) || LAZYACCESS(modifiers, CTRL_CLICK) || LAZYACCESS(modifiers, ALT_CLICK))
return
+ //You need to be actively holding on the fishing rod to use it, unless you've the profound_fisher trait.
if(!HAS_TRAIT(source, TRAIT_PROFOUND_FISHER) && source.get_active_held_item() != used_rod)
return
if(phase == WAIT_PHASE)
- send_alert("miss!")
- start_baiting_phase(TRUE) //Add in another 3 to 5 seconds for that blunder.
+ if(world.time < last_baiting_click + 0.25 SECONDS)
+ return //Don't punish players if they accidentally double clicked.
+ if(float.spin_frequency)
+ if(!float.spin_ready)
+ send_alert("too early!")
+ start_baiting_phase(TRUE) //Add in another 3 to 5 seconds for that blunder.
+ else
+ send_alert("spun")
+ last_baiting_click = world.time
+ float.spin_ready = FALSE
+ set_lure_timers()
+ else
+ send_alert("miss!")
+ start_baiting_phase(TRUE) //Add in another 3 to 5 seconds for that blunder.
else if(phase == BITING_PHASE)
start_minigame_phase()
return COMSIG_MOB_CANCEL_CLICKON
@@ -313,8 +334,9 @@
completed = TRUE
if(phase == MINIGAME_PHASE)
remove_minigame_hud()
- if(user)
- REMOVE_TRAIT(user, TRAIT_GONE_FISHING, REF(src))
+ if(!QDELETED(user))
+ UnregisterSignal(user, SIGNAL_REMOVETRAIT(TRAIT_GONE_FISHING))
+ user.remove_traits(list(TRAIT_GONE_FISHING, TRAIT_ACTIVELY_FISHING), WEAKREF(src))
if(start_time)
var/seconds_spent = (world.time - start_time) * 0.1
if(!(special_effects & FISHING_MINIGAME_RULE_NO_EXP))
@@ -323,30 +345,33 @@
user.client?.give_award(/datum/award/achievement/skill/legendary_fisher, user)
if(win)
if(reward_path != FISHING_DUD)
- playsound(lure, 'sound/effects/bigsplash.ogg', 100)
+ playsound(float, 'sound/effects/bigsplash.ogg', 100)
SEND_SIGNAL(src, COMSIG_FISHING_CHALLENGE_COMPLETED, user, win)
if(!QDELETED(src))
qdel(src)
/datum/fishing_challenge/proc/start_baiting_phase(penalty = FALSE)
var/wait_time
+ last_baiting_click = world.time
if(penalty)
wait_time = min(timeleft(next_phase_timer) + rand(3 SECONDS, 5 SECONDS), 30 SECONDS)
else
- wait_time = rand(3 SECONDS, 25 SECONDS)
+ wait_time = float.spin_frequency ? rand(11 SECONDS, 17 SECONDS) : rand(3 SECONDS, 25 SECONDS)
if(special_effects & FISHING_MINIGAME_AUTOREEL && wait_time >= 15 SECONDS)
wait_time = max(wait_time - 7.5 SECONDS, 15 SECONDS)
deltimer(next_phase_timer)
phase = WAIT_PHASE
//Bobbing animation
- animate(lure, pixel_y = 1, time = 1 SECONDS, loop = -1, flags = ANIMATION_RELATIVE)
+ animate(float, pixel_y = 1, time = 1 SECONDS, loop = -1, flags = ANIMATION_RELATIVE)
animate(pixel_y = -1, time = 1 SECONDS, flags = ANIMATION_RELATIVE)
- next_phase_timer = addtimer(CALLBACK(src, PROC_REF(start_biting_phase)), wait_time, TIMER_STOPPABLE)
+ next_phase_timer = addtimer(CALLBACK(src, PROC_REF(start_biting_phase)), wait_time, TIMER_STOPPABLE|TIMER_DELETE_ME)
+ if(float.spin_frequency)
+ set_lure_timers()
/datum/fishing_challenge/proc/start_biting_phase()
phase = BITING_PHASE
// Trashing animation
- playsound(lure, 'sound/effects/fish_splash.ogg', 100)
+ playsound(float, 'sound/effects/fish_splash.ogg', 100)
if(HAS_MIND_TRAIT(user, TRAIT_REVEAL_FISH))
switch(fish_icon)
if(FISH_ICON_DEF)
@@ -369,15 +394,31 @@
send_alert("crustacean!!!")
if(FISH_ICON_BONE)
send_alert("bones!!!")
+ if(FISH_ICON_ELECTRIC)
+ send_alert("zappy!!!")
+ if(FISH_ICON_WEAPON)
+ send_alert("weapon!!!")
+ if(FISH_ICON_CRITTER)
+ send_alert("critter!!!")
+ if(FISH_ICON_SEED)
+ send_alert("seed!!!")
+ if(FISH_ICON_BOTTLE)
+ send_alert("bottle!!!")
else
send_alert("!!!")
- animate(lure, pixel_y = 3, time = 5, loop = -1, flags = ANIMATION_RELATIVE)
+ animate(float, pixel_y = 3, time = 5, loop = -1, flags = ANIMATION_RELATIVE)
animate(pixel_y = -3, time = 5, flags = ANIMATION_RELATIVE)
if(special_effects & FISHING_MINIGAME_AUTOREEL)
- start_minigame_phase(auto_reel = TRUE)
- return
+ addtimer(CALLBACK(src, PROC_REF(automatically_start_minigame)), 0.2 SECONDS)
// Setup next phase
- next_phase_timer = addtimer(CALLBACK(src, PROC_REF(start_baiting_phase)), BITING_TIME_WINDOW, TIMER_STOPPABLE)
+ next_phase_timer = addtimer(CALLBACK(src, PROC_REF(start_baiting_phase)), BITING_TIME_WINDOW, TIMER_STOPPABLE|TIMER_DELETE_ME)
+ ///If we're using a lure, we want the float to show a little green light during the minigame phase and not a red one.
+ float.spin_ready = TRUE
+ float.update_appearance(UPDATE_OVERLAYS)
+
+/datum/fishing_challenge/proc/automatically_start_minigame()
+ if(phase == BITING_PHASE)
+ start_minigame_phase(auto_reel = TRUE)
///The damage dealt per second to the fish when FISHING_MINIGAME_RULE_KILL is active.
#define FISH_DAMAGE_PER_SECOND 2
@@ -413,22 +454,45 @@
completion *= 1.2
if(BITING_TIME_WINDOW - 0.5 SECONDS to BITING_TIME_WINDOW)
completion *= 1.4
+ //randomize the position of the fish a little
+ fish_position = rand(0, (FISHING_MINIGAME_AREA - fish_height) * 0.8)
+ var/diff_dist = 100 + difficulty
+ bait_position = clamp(round(fish_position + rand(-diff_dist, diff_dist) - bait_height * 0.5), 0, FISHING_MINIGAME_AREA - bait_height)
if(!prepare_minigame_hud())
+ get_stack_trace("couldn't prepare minigame hud for a fishing challenge.") //just to be sure. This shouldn't happen.
+ qdel(src)
return
+ ADD_TRAIT(user, TRAIT_ACTIVELY_FISHING, WEAKREF(src))
phase = MINIGAME_PHASE
deltimer(next_phase_timer)
if((FISHING_MINIGAME_RULE_KILL in special_effects) && ispath(reward_path,/obj/item/fish))
var/obj/item/fish/fish = reward_path
var/wait_time = (initial(fish.health) / FISH_DAMAGE_PER_SECOND) SECONDS
- addtimer(CALLBACK(src, PROC_REF(win_anyway)), wait_time)
+ addtimer(CALLBACK(src, PROC_REF(win_anyway)), wait_time, TIMER_DELETE_ME)
start_time = world.time
experience_multiplier += difficulty * FISHING_SKILL_DIFFIULTY_EXP_MULT
+///Throws a stack with prefixed text.
+/datum/fishing_challenge/proc/get_stack_trace(init_text)
+ var/text = "[init_text] "
+ text += "used rod: [used_rod || "null"], "
+ if(used_rod)
+ text += "bait: [used_rod.bait || "null"], "
+ text += "reward: [reward_path || "null"], "
+ text += "user: [user || "null"]"
+ if(user)
+ if(QDELING(user))
+ text += ", user qdeling"
+ else if(!user.client)
+ text += ", user clientless"
+ text += "."
+ stack_trace(text)
+
#undef FISH_DAMAGE_PER_SECOND
///Initialize the minigame hud and register some signals to make it work.
/datum/fishing_challenge/proc/prepare_minigame_hud()
- if(!user.client || user.incapacitated())
+ if(!user.client || user.incapacitated)
return FALSE
. = TRUE
fishing_hud = new
@@ -465,7 +529,7 @@
/datum/fishing_challenge/process(seconds_per_tick)
if(length(active_effects) && COOLDOWN_FINISHED(src, active_effect_cd))
select_active_effect()
- move_fish(seconds_per_tick)
+ mover.move_fish(seconds_per_tick)
move_bait(seconds_per_tick)
if(!QDELETED(fishing_hud))
update_visuals()
@@ -485,6 +549,11 @@
fishing_hud.transform = fishing_hud.transform.Scale(1, -1)
SEND_SOUND(user, sound('sound/effects/boing.ogg'))
COOLDOWN_START(src, active_effect_cd, rand(5, 6) SECONDS)
+ if(FISHING_MINIGAME_RULE_CAMO)
+ fishing_hud.icon_state = "background_camo"
+ SEND_SOUND(user, sound('sound/effects/nightmare_poof.ogg', volume = 15))
+ COOLDOWN_START(src, active_effect_cd, rand(6, 8) SECONDS)
+ animate(fishing_hud.hud_fish, alpha = 7, time = 2 SECONDS)
return
///go back to normal
@@ -497,62 +566,14 @@
if(FISHING_MINIGAME_RULE_FLIP)
fishing_hud.transform = fishing_hud.transform.Scale(1, -1)
COOLDOWN_START(src, active_effect_cd, rand(8, 12) SECONDS)
+ if(FISHING_MINIGAME_RULE_CAMO)
+ COOLDOWN_START(src, active_effect_cd, rand(9, 16) SECONDS)
+ SEND_SOUND(user, sound('sound/effects/nightmare_reappear.ogg', volume = 15))
+ animate(fishing_hud.hud_fish, alpha = 255, time = 1.2 SECONDS)
fishing_hud.icon_state = background
current_active_effect = null
-///The proc that moves the fish around, just like in the old TGUI, mostly.
-/datum/fishing_challenge/proc/move_fish(seconds_per_tick)
- var/long_chance = long_jump_chance * seconds_per_tick * 10
- var/short_chance = short_jump_chance * seconds_per_tick * 10
-
- // If we have the target but we're close enough, mark as target reached
- if(abs(target_position - fish_position) < FISH_TARGET_MIN_DISTANCE)
- target_position = null
-
- // Switching to new long jump target can interrupt any other
- if((can_interrupt_move || isnull(target_position)) && prob(long_chance))
- /**
- * Move at least 0.75 to full of the availible bar in given direction,
- * and more likely to move in the direction where there's more space
- */
- var/distance_from_top = FISHING_MINIGAME_AREA - fish_position - fish_height
- var/distance_from_bottom = fish_position
- var/top_chance
- if(distance_from_top < FISH_SHORT_JUMP_MIN_DISTANCE)
- top_chance = 0
- else
- top_chance = (distance_from_top/max(distance_from_bottom, 1)) * 100
- var/new_target = fish_position
- if(prob(top_chance))
- new_target += distance_from_top * rand(75, 100)/100
- else
- new_target -= distance_from_bottom * rand(75, 100)/100
- target_position = round(new_target)
- current_velocity_limit = long_jump_velocity_limit
-
- // Move towards target
- if(!isnull(target_position))
- var/distance = target_position - fish_position
- // about 5 at diff 15 , 10 at diff 30, 30 at diff 100
- var/acceleration_mult = 0.3 * difficulty + 0.5
- var/target_acceleration = distance * acceleration_mult * seconds_per_tick
-
- fish_velocity = fish_velocity * FISH_FRICTION_MULT + target_acceleration
- else if(prob(short_chance))
- var/distance_from_top = FISHING_MINIGAME_AREA - fish_position - fish_height
- var/distance_from_bottom = fish_position
- var/jump_length
- if(distance_from_top >= FISH_SHORT_JUMP_MIN_DISTANCE)
- jump_length = rand(FISH_SHORT_JUMP_MIN_DISTANCE, FISH_SHORT_JUMP_MAX_DISTANCE)
- if(distance_from_bottom >= FISH_SHORT_JUMP_MIN_DISTANCE && (!jump_length || prob(50)))
- jump_length = -rand(FISH_SHORT_JUMP_MIN_DISTANCE, FISH_SHORT_JUMP_MAX_DISTANCE)
- target_position = clamp(fish_position + jump_length, 0, FISHING_MINIGAME_AREA - fish_height)
- current_velocity_limit = short_jump_velocity_limit
-
- fish_velocity = clamp(fish_velocity + fish_idle_velocity, -current_velocity_limit, current_velocity_limit)
- fish_position = clamp(fish_position + fish_velocity * seconds_per_tick, 0, FISHING_MINIGAME_AREA - fish_height)
-
///The proc that moves the bait around, just like in the old TGUI, mostly.
/datum/fishing_challenge/proc/move_bait(seconds_per_tick)
var/should_bounce = abs(bait_velocity) > BAIT_MIN_VELOCITY_BOUNCE
@@ -613,9 +634,7 @@
bait_velocity += velocity_change
//check that the fish area is still intersecting the bait now that it has moved
- fish_on_bait = (fish_position + fish_height >= bait_position) && (bait_position + bait_height >= fish_position)
-
- if(fish_on_bait)
+ if(is_fish_on_bait())
completion += completion_gain * seconds_per_tick
if(completion >= 100)
complete(TRUE)
@@ -627,6 +646,10 @@
completion = clamp(completion, 0, 100)
+///Returns TRUE if the fish and the bait are intersecting
+/datum/fishing_challenge/proc/is_fish_on_bait()
+ return (fish_position + fish_height >= bait_position) && (bait_position + bait_height >= fish_position)
+
///update the vertical pixel position of both fish and bait, and the icon state of the completion bar
/datum/fishing_challenge/proc/update_visuals()
var/bait_offset_mult = bait_position/FISHING_MINIGAME_AREA
@@ -707,34 +730,43 @@
icon_state = "completion_[FLOOR(challenge.completion, 5)]"
/// The visual that appears over the fishing spot
-/obj/effect/fishing_lure
+/obj/effect/fishing_float
+ name = "float"
icon = 'icons/obj/fishing.dmi'
- icon_state = "lure_idle"
+ icon_state = "float"
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ /**
+ * A list with two keys delimiting the spinning interval in which a mouse click has to be pressed while fishing.
+ * If set, an emissive overlay will be added, colored green when the lure is ready to be spun, otherwise red.
+ */
+ var/list/spin_frequency
+ ///Is the bait ready to be spun?
+ var/spin_ready = FALSE
-/obj/effect/fishing_lure/Initialize(mapload, atom/spot)
+/obj/effect/fishing_float/Initialize(mapload, atom/spot)
. = ..()
- if(ismovable(spot)) // we want the lure and therefore the fishing line to stay connected with the fishing spot.
+ if(ismovable(spot)) // we want the float and therefore the fishing line to stay connected with the fishing spot.
RegisterSignal(spot, COMSIG_MOVABLE_MOVED, PROC_REF(follow_movable))
-/obj/effect/fishing_lure/proc/follow_movable(atom/movable/source)
+/obj/effect/fishing_float/proc/follow_movable(atom/movable/source)
SIGNAL_HANDLER
set_glide_size(source.glide_size)
forceMove(source.loc)
+/obj/effect/fishing_float/update_overlays()
+ . = ..()
+ if(!spin_frequency)
+ return
+ var/mutable_appearance/overlay = mutable_appearance(icon, "lure_light")
+ overlay.color = spin_ready ? COLOR_GREEN : COLOR_RED
+ . += overlay
+ . += emissive_appearance(icon, "lure_light_emissive", src, alpha = src.alpha)
+
#undef WAIT_PHASE
#undef BITING_PHASE
#undef MINIGAME_PHASE
-#undef FISHING_MINIGAME_AREA
-#undef FISH_TARGET_MIN_DISTANCE
-#undef FISH_FRICTION_MULT
-#undef FISH_SHORT_JUMP_MIN_DISTANCE
-#undef FISH_SHORT_JUMP_MAX_DISTANCE
-#undef FISH_ON_BAIT_ACCELERATION_MULT
-#undef BAIT_MIN_VELOCITY_BOUNCE
-#undef BAIT_DECELERATION_MULT
-
#undef MINIGAME_SLIDER_HEIGHT
#undef MINIGAME_BAIT_HEIGHT
#undef MINIGAME_FISH_HEIGHT
@@ -745,5 +777,9 @@
#undef REELING_STATE_UP
#undef REELING_STATE_DOWN
+#undef FISH_ON_BAIT_ACCELERATION_MULT
+#undef BAIT_MIN_VELOCITY_BOUNCE
+#undef BAIT_DECELERATION_MULT
+
#undef MAX_FISH_COMPLETION_MALUS
#undef BITING_TIME_WINDOW
diff --git a/code/modules/fishing/fishing_portal_machine.dm b/code/modules/fishing/fishing_portal_machine.dm
index 494b29b4183ee..8b157cbebfff3 100644
--- a/code/modules/fishing/fishing_portal_machine.dm
+++ b/code/modules/fishing/fishing_portal_machine.dm
@@ -100,3 +100,7 @@
if(!choice || !can_interact(user))
return
activate(available_fish_sources[choice])
+
+/obj/machinery/fishing_portal_generator/emagged
+ obj_flags = parent_type::obj_flags | EMAGGED
+ circuit = /obj/item/circuitboard/machine/fishing_portal_generator/emagged
diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm
index c36ea48b15c02..28ae51d423662 100644
--- a/code/modules/fishing/fishing_rod.dm
+++ b/code/modules/fishing/fishing_rod.dm
@@ -36,12 +36,18 @@
/// The default color for the reel overlay if no line is equipped.
var/default_line_color = "gray"
- ///should there be a fishing line?
- var/display_fishing_line = TRUE
+ ///Is this currently being used by the profound fisher component?
+ var/internal = FALSE
///The name of the icon state of the reel overlay
var/reel_overlay = "reel_overlay"
+ /**
+ * A list with two keys delimiting the spinning interval in which a mouse click has to be pressed while fishing.
+ * Inherited from baits, passed down to the minigame lure.
+ */
+ var/list/spin_frequency
+
///Prevents spamming the line casting, without affecting the player's click cooldown.
COOLDOWN_DECLARE(casting_cd)
@@ -69,9 +75,11 @@
/obj/item/fishing_rod/add_item_context(obj/item/source, list/context, atom/target, mob/living/user)
. = ..()
- if(currently_hooked)
- context[SCREENTIP_CONTEXT_LMB] = "Reel in"
- context[SCREENTIP_CONTEXT_RMB] = "Unhook"
+ var/gone_fishing = HAS_TRAIT(user, TRAIT_GONE_FISHING)
+ if(currently_hooked || gone_fishing)
+ context[SCREENTIP_CONTEXT_LMB] = (gone_fishing && spin_frequency) ? "Spin" : "Reel in"
+ if(!gone_fishing)
+ context[SCREENTIP_CONTEXT_RMB] = "Unhook"
return CONTEXTUAL_SCREENTIP_SET
return NONE
@@ -107,8 +115,19 @@
var/mob/living/caught_mob = reward
if(caught_mob.stat == DEAD)
return
- else if(!isfish(reward))
- return
+ else
+ if(!isfish(reward))
+ return
+ var/obj/item/fish/fish = reward
+ if(HAS_TRAIT(bait, TRAIT_POISONOUS_BAIT) && !HAS_TRAIT(fish, TRAIT_FISH_TOXIN_IMMUNE))
+ var/kill_fish = TRUE
+ for(var/bait_identifer in fish.favorite_bait)
+ if(is_matching_bait(bait, bait_identifer))
+ kill_fish = FALSE
+ break
+ if(kill_fish)
+ fish.set_status(FISH_DEAD, silent = TRUE)
+
QDEL_NULL(bait)
update_icon()
@@ -127,9 +146,10 @@
return
//Try to move it 'till it's under the user's feet, then try to pick it up
if(isitem(currently_hooked))
- step_towards(currently_hooked, get_turf(src))
- if(currently_hooked.loc == user.loc)
- user.put_in_inactive_hand(currently_hooked)
+ var/obj/item/item = currently_hooked
+ step_towards(item, get_turf(src))
+ if(item.loc == user.loc && (item.interaction_flags_item & INTERACT_ITEM_ATTACK_HAND_PICKUP))
+ user.put_in_inactive_hand(item)
QDEL_NULL(fishing_line)
//Not an item, so just delete the line if it's adjacent to the user.
else if(get_dist(currently_hooked,get_turf(src)) > 1)
@@ -147,21 +167,20 @@
ui_interact(user)
/// Generates the fishing line visual from the current user to the target and updates inhands
-/obj/item/fishing_rod/proc/create_fishing_line(atom/movable/target, target_py = null)
- if(!display_fishing_line)
- return null
- var/mob/user = loc
- if(!istype(user))
+/obj/item/fishing_rod/proc/create_fishing_line(atom/movable/target, mob/living/firer, target_py = null)
+ if(internal)
return null
if(fishing_line)
QDEL_NULL(fishing_line)
var/beam_color = line?.line_color || default_line_color
- fishing_line = new(user, target, icon_state = "fishing_line", beam_color = beam_color, emissive = FALSE, override_target_pixel_y = target_py)
- fishing_line.lefthand = user.get_held_index_of_item(src) % 2 == 1
+ fishing_line = new(firer, target, icon_state = "fishing_line", beam_color = beam_color, emissive = FALSE, override_target_pixel_y = target_py)
+ fishing_line.lefthand = firer.get_held_index_of_item(src) % 2 == 1
RegisterSignal(fishing_line, COMSIG_BEAM_BEFORE_DRAW, PROC_REF(check_los))
RegisterSignal(fishing_line, COMSIG_QDELETING, PROC_REF(clear_line))
INVOKE_ASYNC(fishing_line, TYPE_PROC_REF(/datum/beam/, Start))
- user.update_held_items()
+ if(QDELETED(fishing_line))
+ return null
+ firer.update_held_items()
return fishing_line
/obj/item/fishing_rod/proc/clear_line(datum/source)
@@ -183,7 +202,7 @@
if(!hook.can_be_hooked(target_atom))
return
currently_hooked = target_atom
- create_fishing_line(target_atom)
+ create_fishing_line(target_atom, user)
hook.hook_attached(target_atom, src)
SEND_SIGNAL(src, COMSIG_FISHING_ROD_HOOKED_ITEM, target_atom, user)
@@ -197,6 +216,9 @@
return BEAM_CANCEL_DRAW
/obj/item/fishing_rod/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
+ //this prevent trying to use telekinesis to fish (which would be broken anyway)
+ if(!user.contains(src))
+ return ..()
return ranged_interact_with_atom(interacting_with, user, modifiers)
/obj/item/fishing_rod/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
@@ -245,9 +267,8 @@
COOLDOWN_START(src, casting_cd, 1 SECONDS)
/// Called by hook projectile when hitting things
-/obj/item/fishing_rod/proc/hook_hit(atom/atom_hit_by_hook_projectile)
- var/mob/user = loc
- if(!hook || !istype(user))
+/obj/item/fishing_rod/proc/hook_hit(atom/atom_hit_by_hook_projectile, mob/user)
+ if(!hook)
return
if(SEND_SIGNAL(atom_hit_by_hook_projectile, COMSIG_FISHING_ROD_CAST, src, user) & FISHING_ROD_CAST_HANDLED)
return
@@ -261,6 +282,12 @@
ui.set_autoupdate(FALSE)
ui.open()
+/obj/item/fishing_rod/ui_state()
+ if(internal)
+ return GLOB.deep_inventory_state
+ else
+ return GLOB.default_state
+
/obj/item/fishing_rod/update_overlays()
. = ..()
. += get_fishing_overlays()
@@ -365,7 +392,7 @@
return FALSE
return TRUE
-/obj/item/fishing_rod/ui_act(action, list/params)
+/obj/item/fishing_rod/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return .
@@ -379,6 +406,8 @@
/// Ideally this will be replaced with generic slotted storage datum + display
/obj/item/fishing_rod/proc/use_slot(slot, mob/user, obj/item/new_item)
+ if(fishing_line || HAS_TRAIT(user, TRAIT_GONE_FISHING))
+ return
var/obj/item/current_item
switch(slot)
if(ROD_SLOT_BAIT)
@@ -400,23 +429,20 @@
if(user.transferItemToLoc(new_item,src))
set_slot(new_item, slot)
balloon_alert(user, "[slot] installed")
+ else
+ balloon_alert(user, "stuck to your hands!")
+ return
/// Trying to swap item
else if(new_item && current_item)
if(!slot_check(new_item,slot))
return
- if(user.transferItemToLoc(new_item,src))
- switch(slot)
- if(ROD_SLOT_BAIT)
- bait = new_item
- if(ROD_SLOT_HOOK)
- hook = new_item
- if(ROD_SLOT_LINE)
- line = new_item
- user.put_in_hands(current_item)
- balloon_alert(user, "[slot] swapped")
-
- if(new_item)
- SEND_SIGNAL(new_item, COMSIG_FISHING_EQUIPMENT_SLOTTED, src)
+ if(user.transferItemToLoc(new_item, src))
+ user.put_in_hands(current_item)
+ set_slot(new_item, slot)
+ balloon_alert(user, "[slot] swapped")
+ else
+ balloon_alert(user, "stuck to your hands!")
+ return
update_icon()
playsound(src, 'sound/items/click.ogg', 50, TRUE)
@@ -426,16 +452,23 @@
switch(slot)
if(ROD_SLOT_BAIT)
bait = equipment
+ if(!HAS_TRAIT(bait, TRAIT_BAIT_ALLOW_FISHING_DUD))
+ ADD_TRAIT(src, TRAIT_ROD_REMOVE_FISHING_DUD, INNATE_TRAIT)
if(ROD_SLOT_HOOK)
hook = equipment
if(ROD_SLOT_LINE)
line = equipment
cast_range += FISHING_ROD_REEL_CAST_RANGE
+ else
+ CRASH("set_slot called with an undefined slot: [slot]")
+
+ SEND_SIGNAL(equipment, COMSIG_FISHING_EQUIPMENT_SLOTTED, src)
/obj/item/fishing_rod/Exited(atom/movable/gone, direction)
. = ..()
if(gone == bait)
bait = null
+ REMOVE_TRAIT(src, TRAIT_ROD_REMOVE_FISHING_DUD, INNATE_TRAIT)
if(gone == line)
cast_range -= FISHING_ROD_REEL_CAST_RANGE
line = null
@@ -585,13 +618,13 @@
transform = transform.Scale(1, -1)
. = ..()
if(!QDELETED(src))
- our_line = owner.create_fishing_line(src)
+ our_line = owner.create_fishing_line(src, firer)
/obj/projectile/fishing_cast/on_hit(atom/target, blocked = 0, pierce_hit)
. = ..()
if(blocked < 100)
QDEL_NULL(our_line) //we need to delete the old beam datum, otherwise it won't let you fish.
- owner.hook_hit(target)
+ owner.hook_hit(target, firer)
/obj/projectile/fishing_cast/Destroy()
QDEL_NULL(our_line)
diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm
index 4a0419f98f55f..a63c087fcc652 100644
--- a/code/modules/fishing/sources/_fish_source.dm
+++ b/code/modules/fishing/sources/_fish_source.dm
@@ -8,30 +8,51 @@ GLOBAL_LIST_INIT(preset_fish_sources, init_subtypes_w_path_keys(/datum/fish_sour
* A lot of the icons here may be a tad inaccurate, but since we're limited to the free font awesome icons we
* have access to, we got to make do.
*/
-GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
- /mob/living/basic/carp = FISH_ICON_DEF,
- /mob/living/basic/mining = FISH_ICON_HOSTILE,
- /obj/effect/decal/remains = FISH_ICON_BONE,
- /obj/effect/mob_spawn/corpse = FISH_ICON_BONE,
- /obj/item/coin = FISH_ICON_COIN,
- /obj/item/fish = FISH_ICON_DEF,
- /obj/item/fish/armorfish = FISH_ICON_CRAB,
- /obj/item/fish/boned = FISH_ICON_BONE,
- /obj/item/fish/chasm_crab = FISH_ICON_CRAB,
- /obj/item/fish/gunner_jellyfish = FISH_ICON_JELLYFISH,
- /obj/item/fish/holo/crab = FISH_ICON_CRAB,
- /obj/item/fish/holo/puffer = FISH_ICON_CHUNKY,
- /obj/item/fish/mastodon = FISH_ICON_BONE,
- /obj/item/fish/pufferfish = FISH_ICON_CHUNKY,
- /obj/item/fish/slimefish = FISH_ICON_SLIME,
- /obj/item/fish/sludgefish = FISH_ICON_SLIME,
- /obj/item/fish/starfish = FISH_ICON_STAR,
- /obj/item/storage/wallet = FISH_ICON_COIN,
- /obj/item/stack/sheet/bone = FISH_ICON_BONE,
- /obj/item/stack/sheet/mineral = FISH_ICON_GEM,
- /obj/item/stack/ore = FISH_ICON_GEM,
- /obj/structure/closet/crate = FISH_ICON_COIN,
-)))
+GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons())
+
+/proc/generate_specific_fish_icons()
+ var/list/return_list = zebra_typecacheof(list(
+ /mob/living/basic/axolotl = FISH_ICON_CRITTER,
+ /mob/living/basic/frog = FISH_ICON_CRITTER,
+ /mob/living/basic/carp = FISH_ICON_DEF,
+ /mob/living/basic/mining = FISH_ICON_HOSTILE,
+ /obj/effect/decal/remains = FISH_ICON_BONE,
+ /obj/effect/mob_spawn/corpse = FISH_ICON_BONE,
+ /obj/effect/spawner/message_in_a_bottle = FISH_ICON_BOTTLE,
+ /obj/item/coin = FISH_ICON_COIN,
+ /obj/item/fish = FISH_ICON_DEF,
+ /obj/item/fish/armorfish = FISH_ICON_CRAB,
+ /obj/item/fish/boned = FISH_ICON_BONE,
+ /obj/item/fish/chainsawfish = FISH_ICON_WEAPON,
+ /obj/item/fish/chasm_crab = FISH_ICON_CRAB,
+ /obj/item/fish/gunner_jellyfish = FISH_ICON_JELLYFISH,
+ /obj/item/fish/holo/crab = FISH_ICON_CRAB,
+ /obj/item/fish/holo/puffer = FISH_ICON_CHUNKY,
+ /obj/item/fish/jumpercable = FISH_ICON_ELECTRIC,
+ /obj/item/fish/lavaloop = FISH_ICON_WEAPON,
+ /obj/item/fish/mastodon = FISH_ICON_BONE,
+ /obj/item/fish/pike/armored = FISH_ICON_WEAPON,
+ /obj/item/fish/pufferfish = FISH_ICON_CHUNKY,
+ /obj/item/fish/sand_crab = FISH_ICON_CRAB,
+ /obj/item/fish/skin_crab = FISH_ICON_CRAB,
+ /obj/item/fish/slimefish = FISH_ICON_SLIME,
+ /obj/item/fish/sludgefish = FISH_ICON_SLIME,
+ /obj/item/fish/starfish = FISH_ICON_STAR,
+ /obj/item/fish/stingray = FISH_ICON_WEAPON,
+ /obj/item/fish/swordfish = FISH_ICON_WEAPON,
+ /obj/item/fish/zipzap = FISH_ICON_ELECTRIC,
+ /obj/item/seeds/grass = FISH_ICON_SEED,
+ /obj/item/seeds/random = FISH_ICON_SEED,
+ /obj/item/storage/wallet = FISH_ICON_COIN,
+ /obj/item/stack/sheet/bone = FISH_ICON_BONE,
+ /obj/item/stack/sheet/mineral = FISH_ICON_GEM,
+ /obj/item/stack/ore = FISH_ICON_GEM,
+ /obj/structure/closet/crate = FISH_ICON_COIN,
+ /obj/structure/mystery_box = FISH_ICON_COIN,
+ ))
+
+ return_list[FISHING_RANDOM_SEED] = FISH_ICON_SEED
+ return return_list
/**
* Where the fish actually come from - every fishing spot has one assigned but multiple fishing holes
@@ -45,6 +66,10 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
var/list/fish_table = list()
/// If a key from fish_table is present here, that fish is availible in limited quantity and is reduced by one on successful fishing
var/list/fish_counts = list()
+ /// Any limited quantity stuff in this list will be readded to the counts after a while
+ var/list/fish_count_regen
+ /// A list of stuff that's currently waiting to be readded to fish_counts
+ var/list/currently_on_regen
/// Text shown as baloon alert when you roll a dud in the table
var/duds = list("it was nothing", "the hook is empty")
/// Baseline difficulty for fishing in this spot
@@ -75,9 +100,12 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
return ..()
///Called when src is set as the fish source of a fishing spot component
-/datum/fish_source/proc/on_fishing_spot_init(/datum/component/fishing_spot/spot)
+/datum/fish_source/proc/on_fishing_spot_init(datum/component/fishing_spot/spot)
return
+///Called whenever a fishing spot with this fish source attached is deleted
+/datum/fish_source/proc/on_fishing_spot_del(datum/component/fishing_spot/spot)
+
/// Can we fish in this spot at all. Returns DENIAL_REASON or null if we're good to go
/datum/fish_source/proc/reason_we_cant_fish(obj/item/fishing_rod/rod, mob/fisherman, atom/parent)
return rod.reason_we_cant_fish(src)
@@ -112,8 +140,8 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
// In the future non-fish rewards can have variable difficulty calculated here
return
- var/list/fish_list_properties = collect_fish_properties()
var/obj/item/fish/caught_fish = result
+ var/list/fish_properties = SSfishing.fish_properties[caught_fish]
// Baseline fish difficulty
. += initial(caught_fish.fishing_difficulty_modifier)
@@ -121,18 +149,18 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
if(rod.bait)
var/obj/item/bait = rod.bait
//Fav bait makes it easier
- var/list/fav_bait = fish_list_properties[caught_fish][NAMEOF(caught_fish, favorite_bait)]
+ var/list/fav_bait = fish_properties[FISH_PROPERTIES_FAV_BAIT]
for(var/bait_identifer in fav_bait)
if(is_matching_bait(bait, bait_identifer))
. += FAV_BAIT_DIFFICULTY_MOD
//Disliked bait makes it harder
- var/list/disliked_bait = fish_list_properties[caught_fish][NAMEOF(caught_fish, disliked_bait)]
+ var/list/disliked_bait = fish_properties[FISH_PROPERTIES_BAD_BAIT]
for(var/bait_identifer in disliked_bait)
if(is_matching_bait(bait, bait_identifer))
. += DISLIKED_BAIT_DIFFICULTY_MOD
// Matching/not matching fish traits and equipment
- var/list/fish_traits = fish_list_properties[caught_fish][NAMEOF(caught_fish, fish_traits)]
+ var/list/fish_traits = fish_properties[FISH_PROPERTIES_TRAITS]
var/additive_mod = 0
var/multiplicative_mod = 1
@@ -146,8 +174,8 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
. *= multiplicative_mod
/// In case you want more complex rules for specific spots
-/datum/fish_source/proc/roll_reward(obj/item/fishing_rod/rod, mob/fisherman)
- return pick_weight(get_modified_fish_table(rod,fisherman))
+/datum/fish_source/proc/roll_reward(obj/item/fishing_rod/rod, mob/fisherman, atom/location)
+ return pick_weight(get_modified_fish_table(rod, fisherman, location)) || FISHING_DUD
/**
* Used to register signals or add traits and the such right after conditions have been cleared
@@ -171,7 +199,7 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
return
var/obj/item/fish/caught = source.reward_path
user.add_mob_memory(/datum/memory/caught_fish, protagonist = user, deuteragonist = initial(caught.name))
- var/turf/fishing_spot = get_turf(source.lure)
+ var/turf/fishing_spot = get_turf(source.float)
var/atom/movable/reward = dispense_reward(source.reward_path, user, fishing_spot)
if(source.used_rod)
SEND_SIGNAL(source.used_rod, COMSIG_FISHING_ROD_CAUGHT_FISH, reward, user)
@@ -198,16 +226,26 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
/datum/fish_source/proc/simple_dispense_reward(reward_path, atom/spawn_location, turf/fishing_spot)
if(isnull(reward_path))
return null
- if((reward_path in fish_counts)) // This is limited count result
+ if(reward_path in fish_counts) // This is limited count result
fish_counts[reward_path] -= 1
- if(!fish_counts[reward_path])
- fish_counts -= reward_path //Ran out of these since rolling (multiple fishermen on same source most likely)
- fish_table -= reward_path
+ var/regen_time = fish_count_regen?[reward_path]
+ if(regen_time)
+ LAZYADDASSOC(currently_on_regen, reward_path, 1)
+ if(currently_on_regen[reward_path] == 1)
+ addtimer(CALLBACK(src, PROC_REF(regen_count), reward_path), regen_time)
var/atom/movable/reward = spawn_reward(reward_path, spawn_location, fishing_spot)
SEND_SIGNAL(src, COMSIG_FISH_SOURCE_REWARD_DISPENSED, reward)
return reward
+/datum/fish_source/proc/regen_count(reward_path, regen_time)
+ fish_counts[reward_path] += 1
+ currently_on_regen[reward_path] -= 1
+ if(!currently_on_regen[reward_path])
+ LAZYREMOVE(currently_on_regen, reward_path)
+ else
+ addtimer(CALLBACK(src, PROC_REF(regen_count), reward_path), regen_time)
+
/// Spawns a reward from a atom path right where the fisherman is. Part of the dispense_reward() logic.
/datum/fish_source/proc/spawn_reward(reward_path, atom/spawn_location, turf/fishing_spot)
if(reward_path == FISHING_DUD)
@@ -222,42 +260,16 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list(
caught_fish.randomize_size_and_weight()
return reward
-/// Cached fish list properties so we don't have to initalize fish every time, init deffered
-GLOBAL_LIST(fishing_property_cache)
-
-/// Awful workaround around initial(x.list_variable) not being a thing while trying to keep some semblance of being structured
-/proc/collect_fish_properties()
- if(GLOB.fishing_property_cache == null)
- var/list/fish_property_table = list()
- for(var/fish_type in subtypesof(/obj/item/fish))
- var/obj/item/fish/fish = new fish_type(null, FALSE)
- fish_property_table[fish_type] = list()
- fish_property_table[fish_type][NAMEOF(fish, favorite_bait)] = fish.favorite_bait.Copy()
- fish_property_table[fish_type][NAMEOF(fish, disliked_bait)] = fish.disliked_bait.Copy()
- fish_property_table[fish_type][NAMEOF(fish, fish_traits)] = fish.fish_traits.Copy()
- QDEL_NULL(fish)
- GLOB.fishing_property_cache = fish_property_table
- return GLOB.fishing_property_cache
-
-/// Checks if bait matches identifier from fav/disliked bait list
-/datum/fish_source/proc/is_matching_bait(obj/item/bait, identifier)
- if(ispath(identifier)) //Just a path
- return istype(bait, identifier)
- if(islist(identifier))
- var/list/special_identifier = identifier
- switch(special_identifier["Type"])
- if("Foodtype")
- var/obj/item/food/food_bait = bait
- return istype(food_bait) && food_bait.foodtypes & special_identifier["Value"]
- if("Reagent")
- return bait.reagents?.has_reagent(special_identifier["Value"], special_identifier["Amount"], check_subtypes = TRUE)
- else
- CRASH("Unknown bait identifier in fish favourite/disliked list")
- else
- return HAS_TRAIT(bait, identifier)
+/// Returns the fish table, with with the unavailable items from fish_counts removed.
+/datum/fish_source/proc/get_fish_table()
+ var/list/table = fish_table.Copy()
+ for(var/result in table)
+ if(fish_counts[result] == 0)
+ table -= result
+ return table
/// Builds a fish weights table modified by bait/rod/user properties
-/datum/fish_source/proc/get_modified_fish_table(obj/item/fishing_rod/rod, mob/fisherman)
+/datum/fish_source/proc/get_modified_fish_table(obj/item/fishing_rod/rod, mob/fisherman, atom/location)
var/obj/item/bait = rod.bait
///An exponent used to level out the difference in probabilities between fishes/mobs on the table depending on bait quality.
var/leveling_exponent = 0
@@ -277,9 +289,9 @@ GLOBAL_LIST(fishing_property_cache)
else if(HAS_TRAIT(bait, TRAIT_BASIC_QUALITY_BAIT))
result_multiplier = 2
leveling_exponent = 0.1
- final_table -= FISHING_DUD
- var/list/fish_list_properties = collect_fish_properties()
+ if(HAS_TRAIT(rod, TRAIT_ROD_REMOVE_FISHING_DUD))
+ final_table -= FISHING_DUD
if(HAS_TRAIT(fisherman, TRAIT_PROFOUND_FISHER) && !fisherman.client)
@@ -289,37 +301,17 @@ GLOBAL_LIST(fishing_property_cache)
final_table[result] += rod.hook?.get_hook_bonus_additive(result)//Decide on order here so it can be multiplicative
if(ispath(result, /obj/item/fish))
- //Modify fish roll chance
- var/obj/item/fish/caught_fish = result
-
if(bait)
final_table[result] = round(final_table[result] * result_multiplier, 1)
- if(!HAS_TRAIT(bait, TRAIT_OMNI_BAIT))
- //Bait matching likes doubles the chance
- var/list/fav_bait = fish_list_properties[result][NAMEOF(caught_fish, favorite_bait)]
- for(var/bait_identifer in fav_bait)
- if(is_matching_bait(bait, bait_identifer))
- final_table[result] *= 2
- //Bait matching dislikes
- var/list/disliked_bait = fish_list_properties[result][NAMEOF(caught_fish, disliked_bait)]
- for(var/bait_identifer in disliked_bait)
- if(is_matching_bait(bait, bait_identifer))
- final_table[result] = round(final_table[result] * 0.5, 1)
+ var/mult = bait.check_bait(result)
+ final_table[result] = round(final_table[result] * mult, 1)
+ if(mult > 1 && HAS_TRAIT(bait, TRAIT_BAIT_ALLOW_FISHING_DUD))
+ final_table -= FISHING_DUD
else
final_table[result] = round(final_table[result] * 0.15, 1) //Fishing without bait is not going to be easy
// Apply fish trait modifiers
- var/list/fish_traits = fish_list_properties[caught_fish][NAMEOF(caught_fish, fish_traits)]
- var/additive_mod = 0
- var/multiplicative_mod = 1
- for(var/fish_trait in fish_traits)
- var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait]
- var/list/mod = trait.catch_weight_mod(rod, fisherman)
- additive_mod += mod[ADDITIVE_FISHING_MOD]
- multiplicative_mod *= mod[MULTIPLICATIVE_FISHING_MOD]
-
- final_table[result] += additive_mod
- final_table[result] = round(final_table[result] * multiplicative_mod, 1)
+ final_table[result] = get_fish_trait_catch_mods(final_table[result], result, rod, fisherman, location)
if(final_table[result] <= 0)
final_table -= result
@@ -343,6 +335,63 @@ GLOBAL_LIST(fishing_property_cache)
return final_table
+/datum/fish_source/proc/get_fish_trait_catch_mods(weight, obj/item/fish/fish, obj/item/fishing_rod/rod, mob/user, atom/location)
+ if(!ispath(fish, /obj/item/fish))
+ return weight
+ var/multiplier = 1
+ for(var/fish_trait in SSfishing.fish_properties[fish][FISH_PROPERTIES_TRAITS])
+ var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait]
+ var/list/mod = trait.catch_weight_mod(rod, user, location, fish)
+ weight += mod[ADDITIVE_FISHING_MOD]
+ multiplier *= mod[MULTIPLICATIVE_FISHING_MOD]
+
+ return round(weight * multiplier, 1)
+
+///returns true if this fishing spot has fish that are shown in the catalog.
+/datum/fish_source/proc/has_known_fishes()
+ for(var/reward in fish_table)
+ if(!ispath(reward, /obj/item/fish))
+ continue
+ var/obj/item/fish/prototype = reward
+ if(initial(prototype.show_in_catalog))
+ return TRUE
+ return FALSE
+
+///Add a string with the names of catchable fishes to the examine text.
+/datum/fish_source/proc/get_catchable_fish_names(mob/user, atom/location, list/examine_text)
+ var/list/known_fishes = list()
+
+ var/obj/item/fishing_rod/rod = user.get_active_held_item()
+ if(!istype(rod))
+ rod = null
+
+ for(var/reward in fish_table)
+ if(!ispath(reward, /obj/item/fish))
+ continue
+ var/obj/item/fish/prototype = reward
+ if(initial(prototype.show_in_catalog))
+ var/init_name = initial(prototype.name)
+ if(rod)
+ var/init_weight = fish_table[reward]
+ var/weight = (rod.bait ? rod.bait.check_bait(prototype) : 1)
+ weight = get_fish_trait_catch_mods(weight, reward, rod, user, location)
+ if(weight > init_weight)
+ init_name = span_bold(init_name)
+ if(weight/init_weight >= 3.5)
+ init_name = "init_name"
+ else if(weight < init_weight)
+ init_name = span_small(reward)
+ known_fishes += init_name
+
+ if(!length(known_fishes))
+ return
+
+ var/info = "You can catch the following fish here"
+
+ if(rod)
+ info = span_tooltip("boldened are the fish you're more likely to catch with your current setup. The opposite is true for smaller names", info)
+ examine_text += span_info("[info]: [english_list(known_fishes)].")
+
/datum/fish_source/proc/spawn_reward_from_explosion(atom/location, severity)
if(!explosive_malus)
explosive_spawn(location, severity)
@@ -360,17 +409,17 @@ GLOBAL_LIST(fishing_property_cache)
explosive_spawn(turf, exploded_turfs[turf], multiplier)
exploded_turfs = null
-/datum/fish_source/proc/explosive_spawn(location, severity, multiplier = 1)
+/datum/fish_source/proc/explosive_spawn(atom/location, severity, multiplier = 1)
for(var/i in 1 to (severity + 2))
if(!prob((100 + 100 * severity)/i * multiplier))
continue
- var/reward_loot = pick_weight(fish_table)
+ var/reward_loot = pick_weight(get_fish_table())
var/atom/movable/reward = simple_dispense_reward(reward_loot, location, location)
if(isnull(reward))
continue
if(isfish(reward))
var/obj/item/fish/fish = reward
- fish.set_status(FISH_DEAD)
+ fish.set_status(FISH_DEAD, silent = TRUE)
if(isitem(reward))
reward.pixel_x = rand(-9, 9)
reward.pixel_y = rand(-9, 9)
diff --git a/code/modules/fishing/sources/source_types.dm b/code/modules/fishing/sources/source_types.dm
index dd5602b12f99d..6aea78b994368 100644
--- a/code/modules/fishing/sources/source_types.dm
+++ b/code/modules/fishing/sources/source_types.dm
@@ -1,17 +1,32 @@
/datum/fish_source/ocean
fish_table = list(
- FISHING_DUD = 15,
- /obj/item/coin/gold = 5,
- /obj/item/fish/clownfish = 15,
- /obj/item/fish/pufferfish = 15,
- /obj/item/fish/cardinal = 15,
- /obj/item/fish/greenchromis = 15,
- /obj/item/fish/lanternfish = 5,
- /obj/item/fish/zipzap = 5,
- /obj/item/fish/clownfish/lube = 3,
+ FISHING_DUD = 10,
+ /obj/effect/spawner/message_in_a_bottle = 4,
+ /obj/item/coin/gold = 6,
+ /obj/item/fish/clownfish = 11,
+ /obj/item/fish/pufferfish = 11,
+ /obj/item/fish/cardinal = 11,
+ /obj/item/fish/greenchromis = 11,
+ /obj/item/fish/squid = 11,
+ /obj/item/fish/stingray = 8,
+ /obj/item/fish/plaice = 8,
+ /obj/item/fish/monkfish = 5,
+ /obj/item/fish/stingray = 10,
+ /obj/item/fish/lanternfish = 7,
+ /obj/item/fish/zipzap = 7,
+ /obj/item/fish/clownfish/lube = 5,
+ /obj/item/fish/swordfish = 5,
+ /obj/item/fish/swordfish = 3,
+ /obj/structure/mystery_box/fishing = 2,
)
fish_counts = list(
/obj/item/fish/clownfish/lube = 2,
+ /obj/item/fish/swordfish = 2,
+ /obj/structure/mystery_box/fishing = 1,
+ )
+ fish_count_regen = list(
+ /obj/item/fish/clownfish/lube = 3 MINUTES,
+ /obj/item/fish/swordfish = 5 MINUTES,
)
fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 5
explosive_malus = TRUE
@@ -19,12 +34,73 @@
/datum/fish_source/ocean/beach
catalog_description = "Beach shore water"
+/datum/fish_source/ice_fishing
+ catalog_description = "Ice-covered water"
+ fish_table = list(
+ FISHING_DUD = 4,
+ /obj/item/fish/arctic_char = 5,
+ /obj/item/fish/sockeye_salmon = 5,
+ /obj/item/fish/chasm_crab/ice = 2,
+ /obj/item/fish/boned = 1,
+ )
+ fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 20
+
+/datum/fish_source/river
+ catalog_description = "River water"
+ fish_table = list(
+ FISHING_DUD = 4,
+ /obj/item/fish/goldfish = 5,
+ /obj/item/fish/guppy = 5,
+ /obj/item/fish/perch = 4,
+ /obj/item/fish/angelfish = 4,
+ /obj/item/fish/catfish = 4,
+ /obj/item/fish/perch = 5,
+ /obj/item/fish/slimefish = 2,
+ /obj/item/fish/sockeye_salmon = 1,
+ /obj/item/fish/arctic_char = 1,
+ /obj/item/fish/pike = 1,
+ /obj/item/fish/goldfish/three_eyes = 1,
+ )
+ fish_counts = list(
+ /obj/item/fish/pike = 3,
+ )
+ fish_count_regen = list(
+ /obj/item/fish/pike = 4 MINUTES,
+ )
+ fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 5
+
+/datum/fish_source/sand
+ catalog_description = "Sand"
+ fish_table = list(
+ FISHING_DUD = 8,
+ /obj/item/fish/sand_crab = 10,
+ /obj/item/fish/sand_surfer = 10,
+ /obj/item/fish/bumpy = 10,
+ /obj/item/coin/gold = 3,
+ )
+ fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 20
+
+/datum/fish_source/cursed_spring
+ catalog_description = null //it's a secret (sorta, I know you're reading this)
+ fish_table = list(
+ FISHING_DUD = 2,
+ /obj/item/fish/soul = 3,
+ /obj/item/fish/skin_crab = 3,
+ /obj/item/fishing_rod/telescopic/master = 1,
+ )
+ fish_counts = list(
+ /obj/item/fishing_rod/telescopic/master = 1,
+ )
+ fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 25
+
/datum/fish_source/portal
fish_table = list(
FISHING_DUD = 7,
/obj/item/fish/goldfish = 10,
/obj/item/fish/guppy = 10,
/obj/item/fish/angelfish = 10,
+ /obj/item/fish/perch = 5,
+ /obj/item/fish/goldfish/three_eyes = 3,
)
catalog_description = "Aquarium dimension (Fishing portal generator)"
///The name of this option shown in the radial menu on the fishing portal generator
@@ -36,17 +112,26 @@
/datum/fish_source/portal/beach
fish_table = list(
- FISHING_DUD = 10,
+ FISHING_DUD = 7,
+ /obj/effect/spawner/message_in_a_bottle = 3,
/obj/item/fish/clownfish = 10,
/obj/item/fish/pufferfish = 10,
/obj/item/fish/cardinal = 10,
/obj/item/fish/greenchromis = 10,
+ /obj/item/fish/squid = 8,
+ /obj/item/fish/plaice = 8,
)
catalog_description = "Beach dimension (Fishing portal generator)"
radial_name = "Beach"
radial_state = "palm_beach"
overlay_state = "portal_beach"
+/datum/fish_source/portal/beach/on_fishing_spot_init(datum/component/fishing_spot/spot)
+ ADD_TRAIT(spot.parent, TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION, INNATE_TRAIT)
+
+/datum/fish_source/portal/beach/on_fishing_spot_del(datum/component/fishing_spot/spot)
+ REMOVE_TRAIT(spot.parent, TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION, INNATE_TRAIT)
+
/datum/fish_source/portal/chasm
background = "background_lavaland"
fish_table = list(
@@ -63,7 +148,8 @@
/datum/fish_source/portal/ocean
fish_table = list(
- FISHING_DUD = 5,
+ FISHING_DUD = 3,
+ /obj/effect/spawner/message_in_a_bottle = 2,
/obj/item/fish/lanternfish = 5,
/obj/item/fish/firefish = 5,
/obj/item/fish/dwarf_moonfish = 5,
@@ -71,6 +157,15 @@
/obj/item/fish/needlefish = 5,
/obj/item/fish/armorfish = 5,
/obj/item/fish/zipzap = 5,
+ /obj/item/fish/stingray = 4,
+ /obj/item/fish/monkfish = 4,
+ /obj/item/fish/swordfish = 3,
+ )
+ fish_counts = list(
+ /obj/item/fish/swordfish = 2,
+ )
+ fish_count_regen = list(
+ /obj/item/fish/swordfish = 5 MINUTES,
)
catalog_description = "Ocean dimension (Fishing portal generator)"
fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 10
@@ -78,6 +173,12 @@
overlay_state = "portal_ocean"
radial_state = "seaboat"
+/datum/fish_source/portal/ocean/on_fishing_spot_init(datum/component/fishing_spot/spot)
+ ADD_TRAIT(spot.parent, TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION, INNATE_TRAIT)
+
+/datum/fish_source/portal/ocean/on_fishing_spot_del(datum/component/fishing_spot/spot)
+ REMOVE_TRAIT(spot.parent, TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION, INNATE_TRAIT)
+
/datum/fish_source/portal/hyperspace
fish_table = list(
FISHING_DUD = 5,
@@ -102,6 +203,16 @@
/obj/item/fish/donkfish = 5,
/obj/item/fish/emulsijack = 5,
/obj/item/fish/jumpercable = 5,
+ /obj/item/fish/chainsawfish = 2,
+ /obj/item/fish/pike/armored = 2,
+ )
+ fish_counts = list(
+ /obj/item/fish/chainsawfish = 1,
+ /obj/item/fish/pike/armored = 1,
+ )
+ fish_count_regen = list(
+ /obj/item/fish/chainsawfish = 7 MINUTES,
+ /obj/item/fish/pike/armored = 7 MINUTES,
)
catalog_description = "Syndicate dimension (Fishing portal generator)"
radial_name = "Syndicate"
@@ -153,8 +264,8 @@
challenge.bait_bounce_mult = clamp(challenge.bait_bounce_mult + (rand(-3, 3) * 0.1), 0.1, 1)
challenge.completion_loss = max(challenge.completion_loss + rand(-2, 2), 0)
challenge.completion_gain = max(challenge.completion_gain + rand(-1, 1), 2)
- challenge.short_jump_velocity_limit += rand(-100, 100)
- challenge.long_jump_velocity_limit += rand(-100, 100)
+ challenge.mover.short_jump_velocity_limit += rand(-100, 100)
+ challenge.mover.long_jump_velocity_limit += rand(-100, 100)
var/static/list/active_effects = bitfield_to_list(FISHING_MINIGAME_ACTIVE_EFFECTS)
for(var/effect in active_effects)
if(prob(30))
@@ -178,7 +289,6 @@
new_traits |= pick_weight(weighted_traits)
caught_fish.inherit_traits(new_traits)
caught_fish.randomize_size_and_weight(deviation = 0.3)
- caught_fish.progenitors = full_capitalize(caught_fish.name)
return caught_fish
@@ -317,16 +427,19 @@
/obj/item/clothing/gloves/bracer = 2,
/obj/effect/decal/remains/human = 2,
/obj/item/fish/mastodon = 1,
+ /obj/item/fishing_rod/telescopic/master = 1,
)
fish_counts = list(
/obj/item/clothing/gloves/bracer = 1,
/obj/effect/decal/remains/human = 1,
/obj/item/fish/mastodon = 1,
+ /obj/item/fishing_rod/telescopic/master = 1,
+ )
+ fish_count_regen = list(
+ /obj/item/fish/mastodon = 8 MINUTES,
)
fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 15
-#define RANDOM_SEED "Random seed"
-
/datum/fish_source/hydro_tray
catalog_description = "Hydroponics trays"
fish_table = list(
@@ -370,7 +483,7 @@
return ..()
/datum/fish_source/hydro_tray/spawn_reward(reward_path, mob/fisherman, turf/fishing_spot)
- if(reward_path != RANDOM_SEED)
+ if(reward_path != FISHING_RANDOM_SEED)
var/mob/living/created_reward = ..()
if(istype(created_reward))
created_reward.name = "small [created_reward.name]"
@@ -391,5 +504,3 @@
var/picked_path = pick(seeds_to_draw_from)
return new picked_path(get_turf(fishing_spot))
-
-#undef RANDOM_SEED
diff --git a/code/modules/food_and_drinks/machinery/coffeemaker.dm b/code/modules/food_and_drinks/machinery/coffeemaker.dm
index 5fdd296d7fc69..bb532b3162483 100644
--- a/code/modules/food_and_drinks/machinery/coffeemaker.dm
+++ b/code/modules/food_and_drinks/machinery/coffeemaker.dm
@@ -731,7 +731,7 @@
coffeepot.reagents.add_reagent_list(reagent_delta)
qdel(reference_bean)
-
+
// remove the coffee beans from the machine
coffee.Cut(1,2)
coffee_amount--
diff --git a/code/modules/food_and_drinks/machinery/icecream_vat.dm b/code/modules/food_and_drinks/machinery/icecream_vat.dm
index 355601693b9d2..b58af21331eab 100644
--- a/code/modules/food_and_drinks/machinery/icecream_vat.dm
+++ b/code/modules/food_and_drinks/machinery/icecream_vat.dm
@@ -1,5 +1,5 @@
///How many units of a reagent is needed to make a cone.
-#define CONE_REAGENET_NEEDED 1
+#define CONE_REAGENT_NEEDED 1
///The vat is set to dispense ice cream.
#define VAT_MODE_ICECREAM "ice cream"
@@ -242,7 +242,7 @@
///Makes an ice cream cone of the make_type, using ingredients list as reagents used to make it. Puts in user's hand if possible.
/obj/machinery/icecream_vat/proc/make_cone(mob/user, make_type, list/ingredients)
for(var/reagents_needed in ingredients)
- if(!reagents.has_reagent(reagents_needed, CONE_REAGENET_NEEDED))
+ if(!reagents.has_reagent(reagents_needed, CONE_REAGENT_NEEDED))
balloon_alert(user, "not enough ingredients!")
return
var/cone_type = cone_prototypes[make_type].type
@@ -251,7 +251,7 @@
var/obj/item/food/icecream/cone = new cone_type(src)
for(var/reagents_used in ingredients)
- reagents.remove_reagent(reagents_used, CONE_REAGENET_NEEDED)
+ reagents.remove_reagent(reagents_used, CONE_REAGENT_NEEDED)
balloon_alert_to_viewers("cooks up [cone.name]", "cooks up [cone.name]")
try_put_in_hand(cone, user)
@@ -262,14 +262,14 @@
CRASH("[user] was making ice cream of [selected_flavour] but had no flavor datum for it!")
for(var/reagents_needed in flavor.ingredients)
- if(!reagents.has_reagent(reagents_needed, CONE_REAGENET_NEEDED))
+ if(!reagents.has_reagent(reagents_needed, CONE_REAGENT_NEEDED))
balloon_alert(user, "not enough ingredients!")
return
var/should_use_custom_ingredients = (flavor.takes_custom_ingredients && custom_ice_cream_beaker && custom_ice_cream_beaker.reagents.total_volume)
if(flavor.add_flavour(source, should_use_custom_ingredients ? custom_ice_cream_beaker.reagents : null))
for(var/reagents_used in flavor.ingredients)
- reagents.remove_reagent(reagents_used, CONE_REAGENET_NEEDED)
+ reagents.remove_reagent(reagents_used, CONE_REAGENT_NEEDED)
balloon_alert_to_viewers("scoops [selected_flavour]", "scoops [selected_flavour]")
if(istype(cone))
@@ -297,4 +297,4 @@
#undef VAT_MODE_ICECREAM
#undef VAT_MODE_CONES
-#undef CONE_REAGENET_NEEDED
+#undef CONE_REAGENT_NEEDED
diff --git a/code/modules/food_and_drinks/machinery/microwave.dm b/code/modules/food_and_drinks/machinery/microwave.dm
index 2b790306b5ac7..4fa586401ff56 100644
--- a/code/modules/food_and_drinks/machinery/microwave.dm
+++ b/code/modules/food_and_drinks/machinery/microwave.dm
@@ -416,32 +416,7 @@
balloon_alert(user, "max 1 device!")
return ITEM_INTERACT_BLOCKING
- if(istype(item, /obj/item/storage))
- var/obj/item/storage/tray = item
- var/loaded = 0
-
- if(!istype(item, /obj/item/storage/bag/tray))
- // Non-tray dumping requires a do_after
- to_chat(user, span_notice("You start dumping out the contents of [item] into [src]..."))
- if(!do_after(user, 2 SECONDS, target = tray))
- return ITEM_INTERACT_BLOCKING
-
- for(var/obj/tray_item in tray.contents)
- if(!IS_EDIBLE(tray_item))
- continue
- if(ingredients.len >= max_n_of_items)
- balloon_alert(user, "it's full!")
- return ITEM_INTERACT_BLOCKING
- if(tray.atom_storage.attempt_remove(tray_item, src))
- loaded++
- ingredients += tray_item
- if(loaded)
- open(autoclose = 0.6 SECONDS)
- to_chat(user, span_notice("You insert [loaded] items into \the [src]."))
- update_appearance()
- return ITEM_INTERACT_SUCCESS
-
- if(item.w_class <= WEIGHT_CLASS_NORMAL && !user.combat_mode)
+ if(item.w_class <= WEIGHT_CLASS_NORMAL && !user.combat_mode && isnull(item.atom_storage))
if(ingredients.len >= max_n_of_items)
balloon_alert(user, "it's full!")
return ITEM_INTERACT_BLOCKING
@@ -455,6 +430,43 @@
update_appearance()
return ITEM_INTERACT_SUCCESS
+/obj/machinery/microwave/item_interaction_secondary(mob/living/user, obj/item/tool, list/modifiers)
+ if (isnull(tool.atom_storage))
+ return
+ handle_dumping(user, tool)
+ return ITEM_INTERACT_BLOCKING
+
+/obj/machinery/microwave/proc/handle_dumping(mob/living/user, obj/item/tool)
+ if(isnull(tool.atom_storage))
+ return
+
+ var/loaded = 0
+ if(!istype(tool, /obj/item/storage/bag/tray))
+ // Non-tray dumping requires a do_after
+ to_chat(user, span_notice("You start dumping out the contents of [tool] into [src]..."))
+ if(!do_after(user, 2 SECONDS, target = tool))
+ return
+
+ for(var/obj/tray_item in tool.contents)
+ if(!IS_EDIBLE(tray_item))
+ continue
+ if(ingredients.len >= max_n_of_items)
+ balloon_alert(user, "it's full!")
+ return
+ if(tool.atom_storage.attempt_remove(tray_item, src))
+ loaded++
+ ingredients += tray_item
+
+ if(loaded)
+ open(autoclose = 0.6 SECONDS)
+ to_chat(user, span_notice("You insert [loaded] items into \the [src]."))
+ update_appearance()
+
+/obj/machinery/microwave/mouse_drop_receive(obj/item/tool, mob/user, params)
+ if (!istype(tool) || isnull(tool.atom_storage))
+ return
+ handle_dumping(user, tool)
+
/obj/machinery/microwave/attack_hand_secondary(mob/user, list/modifiers)
if(user.can_perform_action(src, ALLOW_SILICON_REACH))
if(!length(ingredients))
diff --git a/code/modules/food_and_drinks/machinery/smartfridge.dm b/code/modules/food_and_drinks/machinery/smartfridge.dm
index a8d07dc8d8769..1dca29b950422 100644
--- a/code/modules/food_and_drinks/machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/machinery/smartfridge.dm
@@ -343,7 +343,7 @@
if(ismob(weapon.loc))
var/mob/owner = weapon.loc
if(!owner.transferItemToLoc(weapon, src))
- to_chat(usr, span_warning("\the [weapon] is stuck to your hand, you cannot put it in \the [src]!"))
+ to_chat(owner, span_warning("\the [weapon] is stuck to your hand, you cannot put it in \the [src]!"))
return FALSE
return TRUE
else
@@ -396,43 +396,39 @@
if(. || !ui.user.can_perform_action(src, FORBID_TELEKINESIS_REACH))
return
- . = TRUE
var/mob/living_mob = ui.user
switch(action)
if("Release")
var/amount = text2num(params["amount"])
- var/desired = 1
+ if(isnull(amount) || !isnum(amount))
+ return TRUE
var/dispensed_amount = 0
if(isAI(living_mob))
to_chat(living_mob, span_warning("[src] does not respect your authority!"))
- return
-
- if (amount > 1)
- desired = tgui_input_number(living_mob, "How many items would you like to take out?", "Release", default = min(amount, 50), max_value = min(amount, 50))
- if(!desired)
- return
+ return TRUE
- for(var/obj/item/dispensed_item in src)
- if(desired <= 0)
+ for(var/obj/item/dispensed_item in contents)
+ if(amount <= 0)
break
var/item_name = "[dispensed_item.type]-[replacetext(replacetext(dispensed_item.name, "\proper", ""), "\improper", "")]"
- if(params["path"] == item_name)
- if(dispensed_item in component_parts)
- CRASH("Attempted removal of [dispensed_item] component_part from smartfridge via smartfridge interface.")
- //dispense the item
- if(!living_mob.put_in_hands(dispensed_item))
- dispensed_item.forceMove(drop_location())
- adjust_item_drop_location(dispensed_item)
- use_energy(active_power_usage)
- dispensed_amount++
- desired--
+ if(params["path"] != item_name)
+ continue
+ if(dispensed_item in component_parts)
+ CRASH("Attempted removal of [dispensed_item] component_part from smartfridge via smartfridge interface.")
+ //dispense the item
+ if(!living_mob.put_in_hands(dispensed_item))
+ dispensed_item.forceMove(drop_location())
+ adjust_item_drop_location(dispensed_item)
+ use_energy(active_power_usage)
+ dispensed_amount++
+ amount--
if(dispensed_amount && vend_sound)
playsound(src, vend_sound, 50, TRUE, extrarange = -3)
if (visible_contents)
update_appearance()
- return
+ return TRUE
return FALSE
@@ -480,15 +476,16 @@
.["isdryer"] = TRUE
.["drying"] = drying
-/obj/machinery/smartfridge/drying/ui_act(action, params)
+/obj/machinery/smartfridge/drying/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
update_appearance() // This is to handle a case where the last item is taken out manually instead of through drying pop-out
return
+ var/mob/user = ui.user
switch(action)
if("Dry")
- toggle_drying(FALSE, usr)
+ toggle_drying(FALSE, user)
return TRUE
/obj/machinery/smartfridge/drying/powered()
diff --git a/code/modules/food_and_drinks/recipes/processor_recipes.dm b/code/modules/food_and_drinks/recipes/processor_recipes.dm
index 3ff29e194c719..14f93b45cd8dc 100644
--- a/code/modules/food_and_drinks/recipes/processor_recipes.dm
+++ b/code/modules/food_and_drinks/recipes/processor_recipes.dm
@@ -139,3 +139,7 @@
output = /obj/item/popsicle_stick
food_multiplier = 3
preserve_materials = FALSE
+
+/datum/food_processor_process/canned_ink
+ input = /obj/item/food/ink_sac
+ output = /obj/item/food/canned/squid_ink
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm
index e5589fcc42d43..5a754361ffb1f 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm
@@ -1,6 +1,10 @@
// This is the home of drink related tablecrafting recipes, I have opted to only let players bottle fancy boozes to reduce the number of entries.
+///Abstract types for all drink recipes that use bottles and result in another bottle, so that the message_in_a_bottle item is properly transferred.
+/datum/crafting_recipe/bottled
+ parts = list(/obj/item/reagent_containers/cup/glass/bottle = 1)
+
///////////////// Booze & Bottles ///////////////////
/datum/crafting_recipe/lizardwine
@@ -14,7 +18,7 @@
result = /obj/item/reagent_containers/cup/glass/bottle/lizardwine
category = CAT_DRINK
-/datum/crafting_recipe/moonshinejug
+/datum/crafting_recipe/bottled/moonshinejug
name = "Moonshine Jug"
time = 30
reqs = list(
@@ -24,7 +28,7 @@
result = /obj/item/reagent_containers/cup/glass/bottle/moonshine
category = CAT_DRINK
-/datum/crafting_recipe/hoochbottle
+/datum/crafting_recipe/bottled/hoochbottle
name = "Hooch Bottle"
time = 30
reqs = list(
@@ -35,7 +39,7 @@
result = /obj/item/reagent_containers/cup/glass/bottle/hooch
category = CAT_DRINK
-/datum/crafting_recipe/blazaambottle
+/datum/crafting_recipe/bottled/blazaambottle
name = "Blazaam Bottle"
time = 20
reqs = list(
@@ -45,7 +49,7 @@
result = /obj/item/reagent_containers/cup/glass/bottle/blazaam
category = CAT_DRINK
-/datum/crafting_recipe/champagnebottle
+/datum/crafting_recipe/bottled/champagnebottle
name = "Champagne Bottle"
time = 30
reqs = list(
@@ -55,7 +59,7 @@
result = /obj/item/reagent_containers/cup/glass/bottle/champagne
category = CAT_DRINK
-/datum/crafting_recipe/trappistbottle
+/datum/crafting_recipe/bottled/trappistbottle
name = "Trappist Bottle"
time = 15
reqs = list(
@@ -65,7 +69,7 @@
result = /obj/item/reagent_containers/cup/glass/bottle/trappist
category = CAT_DRINK
-/datum/crafting_recipe/goldschlagerbottle
+/datum/crafting_recipe/bottled/goldschlagerbottle
name = "Goldschlager Bottle"
time = 30
reqs = list(
@@ -75,7 +79,7 @@
result = /obj/item/reagent_containers/cup/glass/bottle/goldschlager
category = CAT_DRINK
-/datum/crafting_recipe/patronbottle
+/datum/crafting_recipe/bottled/patronbottle
name = "Patron Bottle"
time = 30
reqs = list(
@@ -87,7 +91,7 @@
////////////////////// Non-alcoholic recipes ///////////////////
-/datum/crafting_recipe/holybottle
+/datum/crafting_recipe/bottled/holybottle
name = "Holy Water Flask"
time = 30
reqs = list(
@@ -99,7 +103,7 @@
//flask of unholy water is a beaker for some reason, I will try making it a bottle and add it here once the antag freeze is over. t. kryson
-/datum/crafting_recipe/nothingbottle
+/datum/crafting_recipe/bottled/nothingbottle
name = "Nothing Bottle"
time = 30
reqs = list(
@@ -116,7 +120,7 @@
reqs = list(/obj/item/stack/sheet/cardboard = 1)
category = CAT_CONTAINERS
-/datum/crafting_recipe/candycornliquor
+/datum/crafting_recipe/bottled/candycornliquor
name = "candy corn liquor"
result = /obj/item/reagent_containers/cup/glass/bottle/candycornliquor
time = 30
@@ -125,7 +129,7 @@
/obj/item/reagent_containers/cup/glass/bottle = 1)
category = CAT_DRINK
-/datum/crafting_recipe/kong
+/datum/crafting_recipe/bottled/kong
name = "Kong"
result = /obj/item/reagent_containers/cup/glass/bottle/kong
time = 30
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm
index ec8eda8d3cfff..7b8c071b3a539 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm
@@ -13,7 +13,7 @@
category = CAT_EGG
/datum/crafting_recipe/food/omelette
- name = "Omelette"
+ name = "Omelette du fromage"
reqs = list(
/obj/item/food/egg = 2,
/obj/item/food/cheese/wedge = 2
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm
index 71716a1ee7c2a..7b253f32ce17d 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm
@@ -74,7 +74,8 @@
/obj/item/food/grown/garlic = 1,
/datum/reagent/consumable/lemonjuice = 3,
/datum/reagent/consumable/blackpepper = 2,
- /datum/reagent/consumable/nutriment/fat/oil/olive = 3
+ /datum/reagent/consumable/nutriment/fat/oil/olive = 3,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/lizard_escargot
category = CAT_LIZARD
@@ -94,7 +95,8 @@
reqs = list(
/obj/item/food/fries = 1,
/obj/item/food/meat/cutlet = 2,
- /datum/reagent/consumable/bbqsauce = 5
+ /datum/reagent/consumable/bbqsauce = 5,
+ /obj/item/plate = 1,
)
result = /obj/item/food/lizard_fries
category = CAT_LIZARD
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm
index 02bb9ae7bf82c..9048964df1c7c 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm
@@ -45,6 +45,7 @@
/obj/item/food/grown/onion = 1,
/datum/reagent/consumable/sugar = 3,
/datum/reagent/consumable/limejuice = 3,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/sambal
category = CAT_MARTIAN
@@ -78,6 +79,7 @@
/obj/item/food/meat/cutlet = 1,
/obj/item/food/pineappleslice = 1,
/datum/reagent/consumable/soysauce = 3,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/hurricane_rice
category = CAT_MARTIAN
@@ -91,6 +93,7 @@
/obj/item/food/onion_slice = 1,
/obj/item/food/sausage = 1,
/obj/item/food/grown/chili = 1,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/ikareis
category = CAT_MARTIAN
@@ -103,7 +106,8 @@
/obj/item/food/grown/bell_pepper = 1,
/obj/item/food/pineappleslice = 1,
/obj/item/food/onion_slice = 1,
- /datum/reagent/consumable/soysauce = 5
+ /datum/reagent/consumable/soysauce = 5,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/hawaiian_fried_rice
category = CAT_MARTIAN
@@ -118,6 +122,7 @@
/obj/item/food/grown/peas = 1,
/datum/reagent/consumable/ketchup = 5,
/datum/reagent/consumable/worcestershire = 2,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/ketchup_fried_rice
category = CAT_MARTIAN
@@ -131,6 +136,7 @@
/obj/item/food/cheese/firm_cheese_slice = 1,
/obj/item/food/grown/olive = 1,
/obj/item/food/meatball = 1,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/mediterranean_fried_rice
category = CAT_MARTIAN
@@ -141,6 +147,7 @@
/obj/item/food/boiledrice = 1,
/obj/item/food/egg = 1,
/datum/reagent/consumable/soysauce = 3,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/egg_fried_rice
category = CAT_MARTIAN
@@ -154,6 +161,7 @@
/obj/item/food/meat/cutlet = 1,
/obj/item/food/kimchi = 1,
/obj/item/food/egg = 1,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/bibimbap
category = CAT_MARTIAN
@@ -167,6 +175,7 @@
/obj/item/food/grown/garlic = 1,
/obj/item/food/onion_slice = 1,
/datum/reagent/consumable/nutriment/soup/teriyaki = 4,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/bulgogi_noodles
category = CAT_MARTIAN
@@ -180,6 +189,7 @@
/obj/item/food/onion_slice = 1,
/obj/item/food/katsu_fillet = 1,
/datum/reagent/consumable/worcestershire = 3,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/yakisoba_katsu
category = CAT_MARTIAN
@@ -194,6 +204,7 @@
/obj/item/food/egg = 1,
/datum/reagent/consumable/soysauce = 3,
/datum/reagent/consumable/red_bay = 3,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/martian_fried_noodles
category = CAT_MARTIAN
@@ -203,6 +214,7 @@
reqs = list(
/obj/item/food/spaghetti/boilednoodles = 1,
/datum/reagent/consumable/soysauce = 3,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/simple_fried_noodles
category = CAT_MARTIAN
@@ -222,6 +234,7 @@
/obj/item/food/grown/onion = 1,
/obj/item/food/grown/carrot = 1,
/obj/item/food/grown/potato = 1,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/setagaya_curry
category = CAT_MARTIAN
@@ -545,6 +558,7 @@
/obj/item/food/meat/slab/chicken = 1,
/datum/reagent/consumable/coconut_milk = 5,
/datum/reagent/consumable/curry_powder = 3,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/po_kok_gai
category = CAT_MARTIAN
@@ -579,6 +593,7 @@
/obj/item/food/grown/tomato = 1,
/obj/item/food/uncooked_rice = 1,
/datum/reagent/blood = 5,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/galinha_de_cabidela
category = CAT_MARTIAN
@@ -589,6 +604,7 @@
/obj/item/food/katsu_fillet = 1,
/obj/item/food/boiledrice = 1,
/datum/reagent/consumable/nutriment/soup/curry_sauce = 5,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/katsu_curry
category = CAT_MARTIAN
@@ -600,6 +616,7 @@
/obj/item/food/onion_slice = 1,
/obj/item/food/boiledrice = 1,
/datum/reagent/consumable/nutriment/soup/dashi = 5,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/beef_bowl
category = CAT_MARTIAN
@@ -613,6 +630,7 @@
/obj/item/food/boiledrice = 1,
/datum/reagent/consumable/salt = 2,
/datum/reagent/consumable/nutriment/soup/curry_sauce = 5,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/salt_chilli_bowl
category = CAT_MARTIAN
@@ -625,6 +643,7 @@
/obj/item/food/grown/onion = 1,
/obj/item/food/boiledrice = 1,
/datum/reagent/consumable/nutriment/soup/dashi = 5,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/kansai_bowl
category = CAT_MARTIAN
@@ -637,6 +656,7 @@
/obj/item/food/fishmeat = 1,
/obj/item/food/boiledrice = 1,
/datum/reagent/consumable/cafe_latte = 5,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/eigamudo_curry
category = CAT_MARTIAN
@@ -681,6 +701,7 @@
/datum/reagent/consumable/caramel = 2,
/obj/item/food/icecream = 1,
/datum/reagent/consumable/ethanol/rum = 2,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/pineapple_foster
category = CAT_MARTIAN
@@ -848,6 +869,7 @@
/obj/item/food/fishmeat = 1,
/obj/item/food/boiledrice = 1,
/datum/reagent/consumable/nutriment/soup/dashi = 5,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/salad/sprout_bowl
category = CAT_MARTIAN
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm
index 98eafb66823df..804956cbeed5b 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm
@@ -243,6 +243,7 @@
/obj/item/food/grown/onion = 1,
/obj/item/food/grown/tomato = 1,
/obj/item/food/meat/steak = 1,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/beef_stroganoff
category = CAT_MEAT
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm
index 8778ee976ef25..840d3a8c08b1a 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm
@@ -120,7 +120,8 @@
/obj/item/food/cornchips = 1,
/obj/item/food/grown/chili = 1,
/obj/item/food/grown/onion = 1,
- /obj/item/food/grown/tomato = 1
+ /obj/item/food/grown/tomato = 1,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/chipsandsalsa
category = CAT_MEXICAN
@@ -198,6 +199,7 @@
/obj/item/food/grown/tomato = 1,
/obj/item/food/grown/onion = 1,
/obj/item/food/grown/chili = 1,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/pineapple_salsa
category = CAT_MEXICAN
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm
index bb20f4ab0b370..aeb27f026b251 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm
@@ -2,7 +2,8 @@
name = "Herby cheese"
reqs = list(
/obj/item/food/cheese/curd_cheese = 1,
- /obj/item/food/grown/herbs = 4
+ /obj/item/food/grown/herbs = 4,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/herby_cheese
category = CAT_MOTH
@@ -187,7 +188,8 @@
reqs = list(
/datum/reagent/consumable/nutriment/soup/rice_porridge = 10,
/obj/item/food/meat/bacon = 1,
- /obj/item/food/friedegg = 2
+ /obj/item/food/friedegg = 2,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/bowled/hua_mulan_congee
category = CAT_MOTH
@@ -199,7 +201,8 @@
/obj/item/food/grown/eggplant = 1,
/obj/item/food/breadslice/plain = 2,
/obj/item/food/tomato_sauce = 1,
- /obj/item/food/cheese/mozzarella = 1
+ /obj/item/food/cheese/mozzarella = 1,
+ /obj/item/reagent_containers/cup/bowl = 1,
)
result = /obj/item/food/bowled/fried_eggplant_polenta
category = CAT_MOTH
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm
index 376c1d4f84509..c965526bcb1c6 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm
@@ -604,6 +604,16 @@
result = /obj/item/food/cherrycupcake/blue
category = CAT_PASTRY
+/datum/crafting_recipe/food/jupitercupcake
+ name = "Jupiter-cup-cake"
+ reqs = list(
+ /obj/item/food/pastrybase = 1,
+ /obj/item/food/grown/mushroom/jupitercup = 1,
+ /datum/reagent/consumable/caramel = 3,
+ )
+ result = /obj/item/food/jupitercupcake
+ category = CAT_PASTRY
+
/datum/crafting_recipe/food/honeybun
name = "Honey bun"
reqs = list(
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm
index 589235eacb70c..edf82287373f0 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm
@@ -44,7 +44,7 @@
/obj/item/reagent_containers/cup/bowl = 1,
/obj/item/food/spaghetti/boiledspaghetti = 1,
/obj/item/food/meat/cutlet = 2,
- /obj/item/food/grown/cabbage = 1
+ /obj/item/food/grown/cabbage = 1,
)
result = /obj/item/food/spaghetti/beefnoodle
category = CAT_SPAGHETTI
@@ -157,3 +157,15 @@
)
result = /obj/item/food/spaghetti/pad_thai
category = CAT_SPAGHETTI
+
+/datum/crafting_recipe/food/carbonara
+ name = "Spaghetti Carbonara"
+ reqs = list(
+ /obj/item/food/spaghetti/boiledspaghetti = 1,
+ /obj/item/food/cheese/firm_cheese_slice = 1,
+ /obj/item/food/meat/bacon = 1,
+ /obj/item/food/egg = 1,
+ /datum/reagent/consumable/blackpepper = 2,
+ )
+ result = /obj/item/food/spaghetti/carbonara
+ category = CAT_SPAGHETTI
diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm
index b98d66f6bd2c7..1107c8c25793a 100644
--- a/code/modules/holodeck/computer.dm
+++ b/code/modules/holodeck/computer.dm
@@ -146,10 +146,10 @@ GLOBAL_LIST_INIT(typecache_holodeck_linked_floorcheck_ok, typecacheof(list(/turf
data["emagged"] = TRUE
data["emag_programs"] = emag_programs
data["program"] = program
- data["can_toggle_safety"] = issilicon(user) || isAdminGhostAI(user)
+ data["can_toggle_safety"] = HAS_SILICON_ACCESS(user)
return data
-/obj/machinery/computer/holodeck/ui_act(action, params)
+/obj/machinery/computer/holodeck/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index 52df09c29cdf8..3549b3e965f48 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -526,7 +526,7 @@
return data
-/obj/machinery/biogenerator/ui_act(action, list/params)
+/obj/machinery/biogenerator/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm
index 9d1d802916bff..9af495f6a6128 100644
--- a/code/modules/hydroponics/grown/mushrooms.dm
+++ b/code/modules/hydroponics/grown/mushrooms.dm
@@ -205,11 +205,11 @@
to_chat(user, span_notice("You hollow up the chanterelle with [I]."))
remove_item_from_storage(user)
- qdel(src)
if(seed.resistance_flags & FIRE_PROOF)
user.put_in_hands(new /obj/item/clothing/head/wizard/chanterelle/fr())
else
user.put_in_hands(new /obj/item/clothing/head/wizard/chanterelle())
+ qdel(src)
//Jupiter Cup
/obj/item/seeds/chanter/jupitercup
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index ed17254fa9b05..041ff97b73cee 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -157,6 +157,11 @@
icon = 'icons/obj/service/hydroponics/equipment.dmi'
icon_state = "hydrotray3"
+/obj/machinery/hydroponics/constructable/fullupgrade
+ name = "deluxe hydroponics tray"
+ desc = "A basin used to grown plants in, packed full of cutting-edge technology."
+ circuit = /obj/item/circuitboard/machine/hydroponics/fullupgrade
+
/obj/machinery/hydroponics/constructable/Initialize(mapload)
. = ..()
AddComponent(/datum/component/simple_rotation)
diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm
index f59adad783968..aa63f5d41f13b 100644
--- a/code/modules/hydroponics/plant_genes.dm
+++ b/code/modules/hydroponics/plant_genes.dm
@@ -202,7 +202,7 @@
return
RegisterSignal(our_plant, COMSIG_PLANT_ON_SLIP, PROC_REF(squash_plant))
- RegisterSignal(our_plant, COMSIG_MOVABLE_IMPACT, PROC_REF(squash_plant))
+ RegisterSignal(our_plant, COMSIG_MOVABLE_IMPACT, PROC_REF(squash_plant_if_not_caught))
RegisterSignal(our_plant, COMSIG_ITEM_ATTACK_SELF, PROC_REF(squash_plant))
/*
@@ -239,6 +239,10 @@
qdel(our_plant)
+/datum/plant_gene/trait/squash/proc/squash_plant_if_not_caught(datum/source, atom/hit_atom, datum/thrownthing/throwing_datum, caught)
+ if(!caught)
+ squash_plant(source, hit_atom)
+
/*
* Makes plant slippery, unless it has a grown-type trash. Then the trash gets slippery.
* Applies other trait effects (teleporting, etc) to the target by signal.
diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm
index c558cba8b3eab..93d9cc0aea773 100644
--- a/code/modules/hydroponics/seed_extractor.dm
+++ b/code/modules/hydroponics/seed_extractor.dm
@@ -276,7 +276,7 @@
data["trait_db"] += trait_data
return data
-/obj/machinery/seed_extractor/ui_act(action, params)
+/obj/machinery/seed_extractor/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm
index 170000eb11557..f0176e6453092 100644
--- a/code/modules/instruments/items.dm
+++ b/code/modules/instruments/items.dm
@@ -27,7 +27,7 @@
if(!ismob(music_player))
return STOP_PLAYING
var/mob/user = music_player
- if(user.incapacitated() || !((loc == user) || (isturf(loc) && Adjacent(user)))) // sorry, no more TK playing.
+ if(user.incapacitated || !((loc == user) || (isturf(loc) && Adjacent(user)))) // sorry, no more TK playing.
return STOP_PLAYING
/obj/item/instrument/suicide_act(mob/living/user)
diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm
index 13a4162ff3be9..c0f200c82f7b6 100644
--- a/code/modules/jobs/job_types/bartender.dm
+++ b/code/modules/jobs/job_types/bartender.dm
@@ -59,6 +59,8 @@
glasses = /obj/item/clothing/glasses/sunglasses/reagent
shoes = /obj/item/clothing/shoes/laceup
+ skillchips = list(/obj/item/skillchip/drunken_brawler)
+
/datum/outfit/job/bartender/post_equip(mob/living/carbon/human/H, visualsOnly)
. = ..()
diff --git a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm
index b02dee12cf826..dd7208d170618 100644
--- a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm
+++ b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm
@@ -586,11 +586,10 @@
AddComponent(/datum/component/two_handed, \
force_unwielded = 14, \
force_wielded = 18, \
- icon_wielded = "[base_icon_state]1", \
)
/obj/item/nullrod/bostaff/update_icon_state()
- icon_state = "[base_icon_state]0"
+ icon_state = inhand_icon_state = "[base_icon_state][HAS_TRAIT(src, TRAIT_WIELDED)]"
return ..()
@@ -706,6 +705,28 @@
hitsound = 'sound/weapons/bladeslice.ogg'
menu_description = "A pointy spear which penetrates armor a little. Can be worn only on the belt."
+// Unholy version of above, since the gamemode is dead in the water
+
+/obj/item/brass_spear
+ name = "dull brass spear"
+ desc = "An ancient spear made of brass. The point seems sharp, but it feels so dull.. you get a feeling brass isn't good nonmagical material for a weapon."
+ icon = 'icons/obj/weapons/spear.dmi'
+ icon_state = "ratvarian_spear"
+ inhand_icon_state = "ratvarian_spear"
+ lefthand_file = 'icons/mob/inhands/antag/clockwork_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/antag/clockwork_righthand.dmi'
+ slot_flags = ITEM_SLOT_BELT
+ force = 15
+ throw_speed = 3
+ throw_range = 7
+ throwforce = 15
+ armour_penetration = 10
+ sharpness = SHARP_POINTY
+ w_class = WEIGHT_CLASS_HUGE
+ attack_verb_continuous = list("stabs", "pokes", "slashes", "clocks")
+ attack_verb_simple = list("stab", "poke", "slash", "clock")
+ hitsound = 'sound/weapons/bladeslice.ogg'
+
// Nullblade - For when you really want to feel like rolling dice during combat
/obj/item/nullrod/nullblade
diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm
index e2eb35af5497e..93475fdc79e23 100644
--- a/code/modules/jobs/job_types/curator.dm
+++ b/code/modules/jobs/job_types/curator.dm
@@ -47,7 +47,7 @@
/obj/item/choice_beacon/hero = 1,
)
belt = /obj/item/modular_computer/pda/curator
- ears = /obj/item/radio/headset/headset_srv
+ ears = /obj/item/radio/headset/headset_srvent
shoes = /obj/item/clothing/shoes/laceup
l_pocket = /obj/item/laser_pointer/green
r_pocket = /obj/item/key/displaycase
@@ -55,6 +55,18 @@
accessory = /obj/item/clothing/accessory/pocketprotector/full
+/datum/outfit/job/curator/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ if(visualsOnly)
+ return ..()
+
+ /// There can be only one cameraman on this station, and no, not that kind
+ var/static/cameraman_choosen = FALSE
+ if(!cameraman_choosen)
+ backpack_contents[/obj/item/broadcast_camera] = 1
+ cameraman_choosen = TRUE
+ return ..()
+
+
/datum/outfit/job/curator/post_equip(mob/living/carbon/human/translator, visualsOnly = FALSE)
..()
diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm
index eba86ec2af07a..46090cdbe30ac 100644
--- a/code/modules/jobs/job_types/mime.dm
+++ b/code/modules/jobs/job_types/mime.dm
@@ -131,7 +131,7 @@
return FALSE
if(!user.is_holding(src))
return FALSE
- if(user.incapacitated())
+ if(user.incapacitated)
return FALSE
if(!user.mind)
return FALSE
diff --git a/code/modules/language/_language_manuals.dm b/code/modules/language/_language_manuals.dm
index eb4ca456440d8..7a4298a06b150 100644
--- a/code/modules/language/_language_manuals.dm
+++ b/code/modules/language/_language_manuals.dm
@@ -85,6 +85,14 @@
. = ..()
name = "extended [initial(language.name)] manual"
+/obj/item/language_manual/piratespeak
+ name = "\improper Captain Pete's Guide to Pirate Lingo"
+ icon_state = "book_pirate"
+ desc = "A book containing all the knowledge, jargon and buzzwords to speak like a true old salt."
+ language = /datum/language/piratespeak
+ flavour_text = "Blimey! I feel less of a landlubber now."
+ charges = 5
+
// So drones can teach borgs and AI dronespeak. For best effect, combine with mother drone lawset.
/obj/item/language_manual/dronespeak_manual
name = "dronespeak manual"
diff --git a/code/modules/language/_language_menu.dm b/code/modules/language/_language_menu.dm
index 0bfb7a79977af..905be8169e26a 100644
--- a/code/modules/language/_language_menu.dm
+++ b/code/modules/language/_language_menu.dm
@@ -56,7 +56,7 @@
return data
-/datum/language_menu/ui_act(action, params)
+/datum/language_menu/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/library/bibles.dm b/code/modules/library/bibles.dm
index 5221dc8047422..0c6a1aad71d63 100644
--- a/code/modules/library/bibles.dm
+++ b/code/modules/library/bibles.dm
@@ -186,7 +186,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list(
return FALSE
if(!istype(user) || !user.is_holding(src))
return FALSE
- if(user.incapacitated())
+ if(user.incapacitated)
return FALSE
if(user.mind?.holy_role != HOLY_ROLE_HIGHPRIEST)
return FALSE
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index a65159a3f8225..35def980eb922 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -80,7 +80,7 @@ GLOBAL_VAR_INIT(library_table_modified, 0)
data["params_changed"] = params_changed
return data
-/obj/machinery/computer/libraryconsole/ui_act(action, params)
+/obj/machinery/computer/libraryconsole/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -424,7 +424,7 @@ GLOBAL_VAR_INIT(library_table_modified, 0)
scanner = WEAKREF(foundya)
return foundya
-/obj/machinery/computer/libraryconsole/bookmanagement/ui_act(action, params)
+/obj/machinery/computer/libraryconsole/bookmanagement/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
//The parent call takes care of stuff like searching, don't forget about that yeah?
. = ..()
if(.)
diff --git a/code/modules/library/skill_learning/generic_skillchips/matrix_flip.dm b/code/modules/library/skill_learning/generic_skillchips/matrix_flip.dm
deleted file mode 100644
index a836442eca052..0000000000000
--- a/code/modules/library/skill_learning/generic_skillchips/matrix_flip.dm
+++ /dev/null
@@ -1,40 +0,0 @@
-#define FLIP_STAMINA_COST 19
-
-/obj/item/skillchip/matrix_flip
- name = "BULLET_DODGER skillchip"
- skill_name = "Flip 2 Dodge"
- skill_description = "At the cost of stamina, your flips can also be used to dodge incoming projectiles."
- skill_icon = FA_ICON_SPINNER
- activate_message = span_notice("You feel the urge to flip scenically as if you are the 'Chosen One'.")
- deactivate_message = span_notice("The urge to flip goes away.")
-
-/obj/item/skillchip/matrix_flip/on_activate(mob/living/carbon/user, silent = FALSE)
- . = ..()
- ADD_TRAIT(user, TRAIT_SLOW_FLIP, SKILLCHIP_TRAIT)
- RegisterSignal(user, COMSIG_MOB_EMOTED("flip"), PROC_REF(on_flip))
- RegisterSignal(user, COMSIG_MOB_PRE_EMOTED, PROC_REF(check_if_we_can_flip))
-
-/obj/item/skillchip/matrix_flip/on_deactivate(mob/living/carbon/user, silent=FALSE)
- REMOVE_TRAIT(user, TRAIT_SLOW_FLIP, SKILLCHIP_TRAIT)
- UnregisterSignal(user, list(COMSIG_MOB_EMOTED("flip"), COMSIG_MOB_PRE_EMOTED))
- return ..()
-
-///Prevent players from stamcritting from INTENTIONAL flips. 1.4s of bullet immunity isn't worth several secs of stun.
-/obj/item/skillchip/matrix_flip/proc/check_if_we_can_flip(mob/living/source, key, params, type_override, intentional, datum/emote/emote)
- SIGNAL_HANDLER
- if(key != "flip" || !intentional)
- return
- if((source.maxHealth - (source.getStaminaLoss() + FLIP_STAMINA_COST)) <= source.crit_threshold)
- source.balloon_alert(source, "too tired!")
- return COMPONENT_CANT_EMOTE
-
-/obj/item/skillchip/matrix_flip/proc/on_flip(mob/living/source)
- SIGNAL_HANDLER
- if(HAS_TRAIT_FROM(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT))
- return
- playsound(source, 'sound/weapons/fwoosh.ogg', 90, FALSE, frequency = 0.7)
- ADD_TRAIT(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT)
- source.adjustStaminaLoss(FLIP_STAMINA_COST)
- addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT), FLIP_EMOTE_DURATION * 2)
-
-#undef FLIP_STAMINA_COST
diff --git a/code/modules/library/skill_learning/generic_skillchips/matrix_taunt.dm b/code/modules/library/skill_learning/generic_skillchips/matrix_taunt.dm
new file mode 100644
index 0000000000000..cfe61b08e0c3c
--- /dev/null
+++ b/code/modules/library/skill_learning/generic_skillchips/matrix_taunt.dm
@@ -0,0 +1,37 @@
+#define TAUNT_STAMINA_COST 19
+
+/obj/item/skillchip/matrix_taunt
+ name = "BULLET_DODGER skillchip"
+ skill_name = "Taunt 2 Dodge"
+ skill_description = "At the cost of stamina, your taunts can also be used to dodge incoming projectiles."
+ skill_icon = FA_ICON_SPINNER
+ activate_message = span_notice("You feel the urge to taunt scenically as if you are the 'Chosen One'.")
+ deactivate_message = span_notice("The urge to taunt goes away.")
+
+/obj/item/skillchip/matrix_taunt/on_activate(mob/living/carbon/user, silent = FALSE)
+ . = ..()
+ RegisterSignal(user, COMSIG_MOB_EMOTED("taunt"), PROC_REF(on_taunt))
+ RegisterSignal(user, COMSIG_MOB_PRE_EMOTED, PROC_REF(check_if_we_can_taunt))
+
+/obj/item/skillchip/matrix_taunt/on_deactivate(mob/living/carbon/user, silent=FALSE)
+ UnregisterSignal(user, list(COMSIG_MOB_EMOTED("taunt"), COMSIG_MOB_PRE_EMOTED))
+ return ..()
+
+///Prevent players from stamcritting from INTENTIONAL flips. 1.4s of bullet immunity isn't worth several secs of stun.
+/obj/item/skillchip/matrix_taunt/proc/check_if_we_can_taunt(mob/living/source, key, params, type_override, intentional, datum/emote/emote)
+ SIGNAL_HANDLER
+ if(key != "taunt" || !intentional)
+ return
+ if((source.maxHealth - (source.getStaminaLoss() + TAUNT_STAMINA_COST)) <= source.crit_threshold)
+ source.balloon_alert(source, "too tired!")
+ return COMPONENT_CANT_EMOTE
+
+/obj/item/skillchip/matrix_taunt/proc/on_taunt(mob/living/source)
+ SIGNAL_HANDLER
+ if(HAS_TRAIT_FROM(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT))
+ return
+ ADD_TRAIT(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT)
+ source.adjustStaminaLoss(TAUNT_STAMINA_COST)
+ addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_UNHITTABLE_BY_PROJECTILES, SKILLCHIP_TRAIT), TAUNT_EMOTE_DURATION * 1.5)
+
+#undef TAUNT_STAMINA_COST
diff --git a/code/modules/library/skill_learning/generic_skillchips/point.dm b/code/modules/library/skill_learning/generic_skillchips/point.dm
new file mode 100644
index 0000000000000..761a482268952
--- /dev/null
+++ b/code/modules/library/skill_learning/generic_skillchips/point.dm
@@ -0,0 +1,99 @@
+/**
+ * A skillchip that gives the user bigger arrows when pointing at things (like some id trims do).
+ * As a bonus, they can costumize the color of the arrow/pointer too.
+ */
+/obj/item/skillchip/big_pointer
+ name = "Kommand skillchip"
+ desc = "A biochip detailing various techniques employed by historical leaders to points at things like a true boss."
+ skill_name = "Enhanced pointing"
+ skill_description = "Learn to point at things in a more noticeable way."
+ skill_icon = FA_ICON_ARROW_DOWN
+ activate_message = span_notice("From \"The Definitive Compendium of Body Language for the Aspiring Leader\", page 164, paragraph 3...")
+ deactivate_message = span_notice("So, uh, yeah, how do I point at things again?")
+
+ ///The action for changing the pointer color
+ var/datum/action/change_pointer_color/action
+
+/obj/item/skillchip/big_pointer/Destroy()
+ action = null
+ return ..()
+
+/obj/item/skillchip/big_pointer/on_activate(mob/living/carbon/user, silent=FALSE)
+ . = ..()
+ RegisterSignal(user, COMSIG_MOVABLE_POINTED, PROC_REF(fancier_pointer))
+ if(!action)
+ action = new(src)
+ action.Grant(user)
+
+/obj/item/skillchip/big_pointer/on_deactivate(mob/living/carbon/user, silent=FALSE)
+ UnregisterSignal(user, COMSIG_MOVABLE_POINTED)
+ action?.arrow_color = null
+ action?.arrow_overlay = null
+ action?.Remove(user)
+ return ..()
+
+/obj/item/skillchip/big_pointer/proc/fancier_pointer(mob/living/user, atom/pointed, obj/effect/temp_visual/point/point)
+ SIGNAL_HANDLER
+ if(HAS_TRAIT(user, TRAIT_UNKNOWN))
+ return
+ point.cut_overlays()
+ if(!action.arrow_color)
+ point.icon_state = "arrow_large"
+ return
+ point.icon_state = "arrow_large_white"
+ point.color = action.arrow_color
+ var/mutable_appearance/highlight = mutable_appearance(point.icon, "arrow_large_white_highlights", appearance_flags = RESET_COLOR)
+ point.add_overlay(highlight)
+
+/datum/action/change_pointer_color
+ name = "Change Pointer Color"
+ desc = "Set your custom pointer color, or reset it to the default."
+ button_icon = /obj/effect/temp_visual/point::icon
+ button_icon_state = "arrow_large_still"
+ check_flags = AB_CHECK_CONSCIOUS
+ ///the color of our arrow
+ var/arrow_color
+ ///the arrow overlay shown on the button
+ var/mutable_appearance/arrow_overlay
+
+/datum/action/change_pointer_color/Destroy()
+ . = ..()
+ arrow_overlay = null
+
+/datum/action/change_pointer_color/Trigger(trigger_flags)
+ . = ..()
+ if(!.)
+ return
+ var/mob/user = owner
+ if(!arrow_color)
+ pick_color(user)
+ return
+ var/choice = tgui_alert(owner, "Reset or update pointer color?","Pointer Color", list("Reset","Update"))
+ if(user != owner || !choice || !IsAvailable(feedback = TRUE))
+ return
+ if(choice == "Update")
+ pick_color(user)
+ else
+ arrow_color = null
+ owner.balloon_alert(owner, "pointer reset")
+ build_all_button_icons(update_flags = UPDATE_BUTTON_ICON, force = TRUE)
+
+/datum/action/change_pointer_color/proc/pick_color(mob/user)
+ var/ncolor = input(owner, "Pick new color", "Pointer Color", arrow_color) as color|null
+ if(user != owner || !IsAvailable(feedback = TRUE))
+ return
+ arrow_color = ncolor
+ owner.balloon_alert(owner, "pointer updated")
+ build_all_button_icons(update_flags = UPDATE_BUTTON_ICON, force = TRUE)
+
+/datum/action/change_pointer_color/apply_button_icon(atom/movable/screen/movable/action_button/current_button, force = FALSE)
+ if(!arrow_color)
+ return ..()
+
+ current_button.icon = current_button.icon_state = null
+ current_button.cut_overlay(arrow_overlay)
+
+ arrow_overlay = mutable_appearance(icon = /obj/effect/temp_visual/point::icon, icon_state = "arrow_large_white_still")
+ arrow_overlay.color = arrow_color
+ arrow_overlay.overlays += mutable_appearance(icon = /obj/effect/temp_visual/point::icon, icon_state = "arrow_large_white_still_highlights", appearance_flags = RESET_COLOR)
+ current_button.add_overlay(arrow_overlay)
diff --git a/code/modules/library/skill_learning/skill_station.dm b/code/modules/library/skill_learning/skill_station.dm
index b376501f758fd..2dec45a6abf77 100644
--- a/code/modules/library/skill_learning/skill_station.dm
+++ b/code/modules/library/skill_learning/skill_station.dm
@@ -252,7 +252,7 @@
current_skills += list(skill_chip.get_chip_data())
.["current"] = current_skills
-/obj/machinery/skill_station/ui_act(action, list/params)
+/obj/machinery/skill_station/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/library/skill_learning/skillchip.dm b/code/modules/library/skill_learning/skillchip.dm
index cc284b91454aa..b8903e5bde09a 100644
--- a/code/modules/library/skill_learning/skillchip.dm
+++ b/code/modules/library/skill_learning/skillchip.dm
@@ -141,6 +141,7 @@
* * silent - Boolean. Whether or not an activation message should be shown to the user.
*/
/obj/item/skillchip/proc/on_activate(mob/living/carbon/user, silent=FALSE)
+ SHOULD_CALL_PARENT(TRUE)
if(!silent && activate_message)
to_chat(user, activate_message)
@@ -175,6 +176,7 @@
* * silent - Boolean. Whether or not a deactivation message should be shown to the user.
*/
/obj/item/skillchip/proc/on_deactivate(mob/living/carbon/user, silent=FALSE)
+ SHOULD_CALL_PARENT(TRUE)
if(!silent && deactivate_message)
to_chat(user, deactivate_message)
@@ -484,9 +486,9 @@
/obj/item/skillchip/master_angler
name = "Mast-Angl-Er skillchip"
- auto_traits = list(TRAIT_REVEAL_FISH, TRAIT_EXAMINE_FISHING_SPOT)
+ auto_traits = list(TRAIT_REVEAL_FISH, TRAIT_EXAMINE_FISHING_SPOT, TRAIT_EXAMINE_FISH, TRAIT_EXAMINE_DEEPER_FISH)
skill_name = "Fisherman's Discernment"
- skill_description = "Lists fishes when examining a fishing spot, and gives a hint of whatever thing's biting the hook."
+ skill_description = "Lists fishes when examining a fishing spot, gives a hint of whatever thing's biting the hook and more."
skill_icon = "fish"
activate_message = span_notice("You feel the knowledge and passion of several sunbaked, seasoned fishermen burn within you.")
deactivate_message = span_notice("You no longer feel like casting a fishing rod by the sunny riverside.")
@@ -499,3 +501,104 @@
skill_icon = FA_ICON_DRUMSTICK_BITE
activate_message = span_notice("You think of your favourite food and realise that you can rotate its flavour in your mind.")
deactivate_message = span_notice("You feel your food-based mind palace crumbling...")
+
+/obj/item/skillchip/drunken_brawler
+ name = "F0RC3 4DD1CT10N skillchip"
+ auto_traits = list(TRAIT_DRUNKEN_BRAWLER)
+ skill_name = "Drunken Unarmed Proficiency"
+ skill_description = "When intoxicated, you gain increased unarmed effectiveness."
+ skill_icon = "wine-bottle"
+ activate_message = span_notice("You honestly could do with a drink. Never know when someone might try and jump you around here.")
+ deactivate_message = span_notice("You suddenly feel a lot safer going around the station sober... ")
+
+/obj/item/skillchip/musical
+ name = "\improper Old Copy of \"Space Station 13: The Musical\""
+ desc = "An old copy of \"Space Station 13: The Musical\", \
+ ran on the station's 100th anniversary...Or maybe it was the 200th?"
+ skill_name = "Memory of a Musical"
+ skill_description = "Allows you to hit that high note, like those that came a century before us."
+ skill_icon = FA_ICON_MUSIC
+ activate_message = span_notice("You feel like you could \u2669 sing a soooong! \u266B")
+ deactivate_message = span_notice("The musical fades from your mind, leaving you with a sense of nostalgia.")
+ custom_premium_price = PAYCHECK_CREW * 4
+
+/obj/item/skillchip/musical/Initialize(mapload, is_removable)
+ . = ..()
+ name = replacetext(name, "Old", round(CURRENT_STATION_YEAR - pick(50, 100, 150, 200, 250), 5))
+
+/obj/item/skillchip/musical/on_activate(mob/living/carbon/user, silent = FALSE)
+ . = ..()
+ RegisterSignal(user, COMSIG_MOB_SAY, PROC_REF(make_music))
+
+/obj/item/skillchip/musical/on_deactivate(mob/living/carbon/user, silent)
+ . = ..()
+ UnregisterSignal(user, COMSIG_MOB_SAY)
+
+/obj/item/skillchip/musical/proc/make_music(mob/living/carbon/source, list/say_args)
+ SIGNAL_HANDLER
+
+ var/raw_message = say_args[SPEECH_MESSAGE]
+ var/list/words = splittext(raw_message, " ")
+ if(length(words) <= 1)
+ say_args[SPEECH_MODS][MODE_SING] = TRUE
+ return
+ var/last_word = words[length(words)]
+ var/num_chars = length_char(last_word)
+ var/last_vowel = ""
+ // find the last vowel present in the word
+ for(var/i in 1 to num_chars)
+ var/char = copytext_char(last_word, i, i + 1)
+ if(char in VOWELS)
+ last_vowel = char
+
+ // now we'll reshape the final word to make it sound like they're singing it
+ var/final_word = ""
+ var/has_ellipsis = copytext(last_word, -3) == "..."
+ for(var/i in 1 to num_chars)
+ var/char = copytext_char(last_word, i, i + 1)
+ // replacing any final periods with exclamation marks (so long as it's not an ellipsis)
+ if(char == "." && i == num_chars && !has_ellipsis)
+ final_word += "!"
+ // or if it's the vowel we found, we're gonna repeat it a few times (holding the note)
+ else if(char == last_vowel)
+ for(var/j in 1 to 4)
+ final_word += char
+ // if we dragged out the last character of the word, just period it
+ if(i == num_chars)
+ final_word += "."
+ // no special handing otherwise
+ else
+ final_word += char
+
+ if(!has_ellipsis)
+ // adding an extra exclamation mark at the end if there's no period
+ var/last_char = copytext_char(final_word, -1)
+ if(last_char != ".")
+ final_word += "!"
+
+ words[length(words)] = final_word
+ // now we siiiiiiing
+ say_args[SPEECH_MESSAGE] = jointext(words, " ")
+ say_args[SPEECH_MODS][MODE_SING] = TRUE
+
+/obj/item/skillchip/musical/examine(mob/user)
+ . = ..()
+ . += span_tinynoticeital("Huh, looks like it'd fit in a skillchip adapter.")
+
+/obj/item/skillchip/musical/examine_more(mob/user)
+ . = ..()
+ var/list/songs = list()
+ songs += "• \"The Ballad of Space Station 13\""
+ songs += "• \"The Captain's Call\""
+ songs += "• \"A Mime's Lament\""
+ songs += "• \"Banned from Cargo\""
+ songs += "• \"Botany Blues\""
+ songs += "• \"Clown Song\""
+ songs += "• \"Elegy to an Engineer\""
+ songs += "• \"Medical Malpractitioner\""
+ songs += "• \"Security Strike\""
+ songs += "• \"Send for the Shuttle\""
+ songs += "• And one song scratched out..."
+
+ . += span_notice("On the back of the chip, you see a list of songs:")
+ . += span_smallnotice("[jointext(songs, "
")]")
diff --git a/code/modules/lootpanel/_lootpanel.dm b/code/modules/lootpanel/_lootpanel.dm
index 45862ebf45542..ab13a7c211677 100644
--- a/code/modules/lootpanel/_lootpanel.dm
+++ b/code/modules/lootpanel/_lootpanel.dm
@@ -56,13 +56,13 @@
/datum/lootpanel/ui_status(mob/user, datum/ui_state/state)
- if(user.incapacitated())
+ if(user.incapacitated)
return UI_DISABLED
return UI_INTERACTIVE
-/datum/lootpanel/ui_act(action, list/params)
+/datum/lootpanel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm b/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm
index 9e188d4585638..7c674e98e24a1 100644
--- a/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm
+++ b/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm
@@ -14,6 +14,7 @@
baseturfs = /turf/open/water/cursed_spring
planetary_atmos = TRUE
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ fishing_datum = /datum/fish_source/cursed_spring
/turf/open/water/cursed_spring/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs)
. = ..()
diff --git a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm
index 860eb8c816882..646de6a2186ef 100644
--- a/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm
+++ b/code/modules/mapfluff/ruins/objects_and_mobs/necropolis_gate.dm
@@ -161,7 +161,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate)
/obj/structure/necropolis_gate/legion_gate/attack_hand(mob/user, list/modifiers)
if(!open && !changing_openness)
var/safety = tgui_alert(user, "You think this might be a bad idea...", "Knock on the door?", list("Proceed", "Abort"))
- if(safety == "Abort" || !in_range(src, user) || !src || open || changing_openness || user.incapacitated())
+ if(safety == "Abort" || !in_range(src, user) || !src || open || changing_openness || user.incapacitated)
return
user.visible_message(span_warning("[user] knocks on [src]..."), span_boldannounce("You tentatively knock on [src]..."))
playsound(user.loc, 'sound/effects/shieldbash.ogg', 100, TRUE)
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm
index ce50fcccc1568..8be91920719c1 100644
--- a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm
+++ b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm
@@ -140,7 +140,7 @@
ui = new(user, src, "VaultController", name)
ui.open()
-/obj/machinery/computer/vaultcontroller/ui_act(action, params)
+/obj/machinery/computer/vaultcontroller/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
index 21075cea38add..b42618f94ee21 100644
--- a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
+++ b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm
@@ -72,7 +72,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
to_chat(target, span_warning("You too far away from \the [src] to enter it!"))
// If the target is incapacitated after selecting a room, they're not allowed to teleport.
- if(target.incapacitated())
+ if(target.incapacitated)
to_chat(target, span_warning("You aren't able to activate \the [src] anymore!"))
// Has the user thrown it away or otherwise disposed of it such that it's no longer in their hands or in some storage connected to them?
@@ -358,7 +358,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999))
to_chat(user, span_warning("Drats! Your vision is too poor to use this!"))
return CLICK_ACTION_BLOCKING
- to_chat(user, span_notice("You peak through the door's bluespace peephole..."))
+ to_chat(user, span_notice("You peek through the door's bluespace peephole..."))
user.reset_perspective(parentSphere)
var/datum/action/peephole_cancel/PHC = new
user.overlay_fullscreen("remote_view", /atom/movable/screen/fullscreen/impaired, 1)
diff --git a/code/modules/mapping/space_management/space_reservation.dm b/code/modules/mapping/space_management/space_reservation.dm
index 04ba59ab5a459..fe0050d418d23 100644
--- a/code/modules/mapping/space_management/space_reservation.dm
+++ b/code/modules/mapping/space_management/space_reservation.dm
@@ -28,6 +28,9 @@
/// The turf type the reservation is initially made with
var/turf_type = /turf/open/space
+ /// Do we override baseturfs with turf_type?
+ var/turf_type_is_baseturf = TRUE
+
///Distance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen
var/pre_cordon_distance = 0
@@ -52,6 +55,10 @@
for(var/turf/reserved_turf as anything in release_turfs)
SEND_SIGNAL(reserved_turf, COMSIG_TURF_RESERVATION_RELEASED, src)
+ // immediately disconnect from atmos
+ reserved_turf.blocks_air = TRUE
+ CALCULATE_ADJACENT_TURFS(reserved_turf, KILL_EXCITED)
+
// Makes the linter happy, even tho we don't await this
INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, reserve_turfs), release_turfs)
@@ -90,7 +97,7 @@
// Its no longer unused, but its also not "used"
cordon_turf.turf_flags &= ~UNUSED_RESERVATION_TURF
- cordon_turf.ChangeTurf(/turf/cordon, /turf/cordon)
+ cordon_turf.empty(/turf/cordon, /turf/cordon)
SSmapping.unused_turfs["[cordon_turf.z]"] -= cordon_turf
// still gets linked to us though
SSmapping.used_turfs[cordon_turf] = src
@@ -138,6 +145,9 @@
if(!HAS_TRAIT(enterer, TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT))
space_dump(source, enterer)
+/datum/turf_reservation/turf_not_baseturf
+ turf_type_is_baseturf = FALSE
+
/// Internal proc which handles reserving the area for the reservation.
/datum/turf_reservation/proc/_reserve_area(width, height, zlevel)
src.width = width
@@ -181,7 +191,7 @@
SSmapping.unused_turfs["[T.z]"] -= T
SSmapping.used_turfs[T] = src
T.turf_flags = (T.turf_flags | RESERVATION_TURF) & ~UNUSED_RESERVATION_TURF
- T.ChangeTurf(turf_type, turf_type)
+ T.empty(turf_type, turf_type_is_baseturf ? turf_type : null)
bottom_left_turfs += BL
top_right_turfs += TR
diff --git a/code/modules/mining/aux_base.dm b/code/modules/mining/aux_base.dm
index a1503b7f63420..82cdaffa71468 100644
--- a/code/modules/mining/aux_base.dm
+++ b/code/modules/mining/aux_base.dm
@@ -133,7 +133,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/auxiliary_base, 32)
return FALSE
return TRUE
-/obj/machinery/computer/auxiliary_base/ui_act(action, params)
+/obj/machinery/computer/auxiliary_base/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mining/boulder_processing/brm.dm b/code/modules/mining/boulder_processing/brm.dm
index 61c5469b45901..9b9186968918b 100644
--- a/code/modules/mining/boulder_processing/brm.dm
+++ b/code/modules/mining/boulder_processing/brm.dm
@@ -153,6 +153,23 @@
playsound(src, MANUAL_TELEPORT_SOUND, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
return TRUE
+/obj/machinery/brm/attack_ai(mob/user)
+ . = ..()
+ if(. || panel_open)
+ return
+ if(!handle_teleport_conditions(user))
+ return
+
+ var/result = pre_collect_boulder()
+ if(result == TURF_BLOCKED_BY_BOULDER)
+ balloon_alert(user, "no space")
+ else if(result)
+ balloon_alert(user, "teleporting")
+
+ COOLDOWN_START(src, manual_teleport_cooldown, TELEPORTATION_TIME)
+
+ return TRUE
+
/obj/machinery/brm/attack_robot(mob/user)
. = ..()
if(. || panel_open)
@@ -206,6 +223,17 @@
end_processing()
update_appearance(UPDATE_ICON_STATE)
+/obj/machinery/brm/attack_ai_secondary(mob/user, list/modifiers)
+ . = ..()
+ if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN || panel_open)
+ return
+ if(!anchored)
+ balloon_alert(user, "anchor first!")
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+
+ toggle_auto_on(user)
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+
/obj/machinery/brm/attack_robot_secondary(mob/user, list/modifiers)
. = ..()
if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN || panel_open)
diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm
index abf5ca77e181d..0685dda148dee 100644
--- a/code/modules/mining/equipment/mining_tools.dm
+++ b/code/modules/mining/equipment/mining_tools.dm
@@ -285,7 +285,7 @@
/obj/item/trench_tool/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
diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm
index cd5a60a22f2ae..ee700e3d9774b 100644
--- a/code/modules/mining/laborcamp/laborstacker.dm
+++ b/code/modules/mining/laborcamp/laborstacker.dm
@@ -68,7 +68,7 @@
data["can_go_home"] = can_go_home
return data
-/obj/machinery/mineral/labor_claim_console/ui_act(action, params)
+/obj/machinery/mineral/labor_claim_console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mining/lavaland/megafauna_loot.dm b/code/modules/mining/lavaland/megafauna_loot.dm
index 0bbf15352318d..f0270b66d377b 100644
--- a/code/modules/mining/lavaland/megafauna_loot.dm
+++ b/code/modules/mining/lavaland/megafauna_loot.dm
@@ -601,6 +601,10 @@
animate(src)
SpinAnimation(15)
+/obj/item/soulscythe/Destroy(force)
+ soul.ghostize()
+ QDEL_NULL(soul)
+ . = ..()
/mob/living/simple_animal/soulscythe
name = "mysterious spirit"
maxHealth = 200
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index a553415176ea5..f833e15d3f3de 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -18,7 +18,7 @@
/obj/structure/closet/crate/necropolis/tendril/attackby(obj/item/item, mob/user, params)
if(!istype(item, /obj/item/skeleton_key) || spawned_loot)
return ..()
- var/loot = rand(1,20)
+ var/loot = rand(1,21)
var/mod
switch(loot)
if(1)
@@ -71,6 +71,9 @@
new /obj/item/bedsheet/cult(src)
if(20)
new /obj/item/clothing/neck/necklace/memento_mori(src)
+ if(21)
+ new /obj/item/clothing/gloves/fingerless/punch_mitts(src)
+ new /obj/item/clothing/head/cowboy(src)
if(!contents.len)
to_chat(user, span_warning("[src] makes a clunking sound as you try to open it. You feel compelled to let the gods know! (Please open an adminhelp and try again!)"))
CRASH("Failed to generate loot. loot number: [loot][mod ? "subloot: [mod]" : null]")
diff --git a/code/modules/mining/lavaland/tendril_loot.dm b/code/modules/mining/lavaland/tendril_loot.dm
index 7670c4e312844..0403e17ad796a 100644
--- a/code/modules/mining/lavaland/tendril_loot.dm
+++ b/code/modules/mining/lavaland/tendril_loot.dm
@@ -621,6 +621,7 @@
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
+ body_parts_covered = HANDS|ARMS
resistance_flags = LAVA_PROOF | FIRE_PROOF //they are from lavaland after all
armor_type = /datum/armor/gloves_gauntlets
diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm
index 61318f63b92a5..d0c63bd3b7aa8 100644
--- a/code/modules/mining/machine_processing.dm
+++ b/code/modules/mining/machine_processing.dm
@@ -94,7 +94,7 @@
/obj/machinery/mineral/processing_unit_console/ui_data(mob/user)
return processing_machine.ui_data()
-/obj/machinery/mineral/processing_unit_console/ui_act(action, list/params)
+/obj/machinery/mineral/processing_unit_console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index 14460cffb1b66..312acb6672014 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -297,7 +297,7 @@
return data
-/obj/machinery/mineral/ore_redemption/ui_act(action, params)
+/obj/machinery/mineral/ore_redemption/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm
index 97c3a90b78eb1..7fe2e9468f186 100644
--- a/code/modules/mining/machine_silo.dm
+++ b/code/modules/mining/machine_silo.dm
@@ -143,7 +143,7 @@
return data
-/obj/machinery/ore_silo/ui_act(action, list/params)
+/obj/machinery/ore_silo/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm
index c8a58a1d0f493..1c250b578668c 100644
--- a/code/modules/mining/machine_stacking.dm
+++ b/code/modules/mining/machine_stacking.dm
@@ -62,7 +62,7 @@
))
return data
-/obj/machinery/mineral/stacking_unit_console/ui_act(action, list/params)
+/obj/machinery/mineral/stacking_unit_console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index e9e8b3a7c3daf..7ad08083df3a8 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -517,7 +517,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
playsound(user.loc, 'sound/items/coinflip.ogg', 50, TRUE)
var/oldloc = loc
sleep(1.5 SECONDS)
- if(loc == oldloc && user && !user.incapacitated())
+ if(loc == oldloc && user && !user.incapacitated)
user.visible_message(span_notice("[user] flips [src]. It lands on [coinflip]."), \
span_notice("You flip [src]. It lands on [coinflip]."), \
span_hear("You hear the clattering of loose change."))
@@ -599,7 +599,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
playsound(user.loc, 'sound/items/coinflip.ogg', 50, TRUE)
var/oldloc = loc
sleep(1.5 SECONDS)
- if(loc == oldloc && user && !user.incapacitated())
+ if(loc == oldloc && user && !user.incapacitated)
user.visible_message(span_notice("[user] flips [src]. It lands on [coinflip]."), \
span_notice("You flip [src]. It lands on [coinflip]."), \
span_hear("You hear the clattering of loose change."))
diff --git a/code/modules/mining/satchel_ore_box.dm b/code/modules/mining/satchel_ore_box.dm
index b94796b161433..94be35108d0b0 100644
--- a/code/modules/mining/satchel_ore_box.dm
+++ b/code/modules/mining/satchel_ore_box.dm
@@ -95,7 +95,7 @@
return list("materials" = materials)
-/obj/structure/ore_box/ui_act(action, params)
+/obj/structure/ore_box/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm
index c239817a30e14..cf5863163c884 100644
--- a/code/modules/mob/dead/observer/login.dm
+++ b/code/modules/mob/dead/observer/login.dm
@@ -7,9 +7,6 @@
ghost_others = client.prefs.read_preference(/datum/preference/choiced/ghost_others)
var/preferred_form = null
- if(isAdminGhostAI(src))
- has_unlimited_silicon_privilege = TRUE
-
if(client.prefs.unlock_content)
preferred_form = client.prefs.read_preference(/datum/preference/choiced/ghost_form)
ghost_orbit = client.prefs.read_preference(/datum/preference/choiced/ghost_orbit)
diff --git a/code/modules/mob/dead/observer/notificationprefs.dm b/code/modules/mob/dead/observer/notificationprefs.dm
index 802da5e2b8011..5e14f1e5ce9bc 100644
--- a/code/modules/mob/dead/observer/notificationprefs.dm
+++ b/code/modules/mob/dead/observer/notificationprefs.dm
@@ -38,7 +38,7 @@
"desc" = GLOB.poll_ignore_desc[key]
))
-/datum/notificationpanel/ui_act(action, params)
+/datum/notificationpanel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index bf4411a0d482d..80f7be5e3180e 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -141,11 +141,8 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
add_to_dead_mob_list()
- for(var/v in GLOB.active_alternate_appearances)
- if(!v)
- continue
- var/datum/atom_hud/alternate_appearance/AA = v
- AA.onNewMob(src)
+ for(var/datum/atom_hud/alternate_appearance/alt_hud as anything in GLOB.active_alternate_appearances)
+ alt_hud.apply_to_new_mob(src)
. = ..()
diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm
index 84b00249a4972..0fae07a4442dd 100644
--- a/code/modules/mob/emote.dm
+++ b/code/modules/mob/emote.dm
@@ -83,15 +83,10 @@
/datum/emote/flip/run_emote(mob/user, params , type_override, intentional)
. = ..()
- user.SpinAnimation(HAS_TRAIT(user, TRAIT_SLOW_FLIP) ? FLIP_EMOTE_DURATION * 2 : FLIP_EMOTE_DURATION, 1)
+ user.SpinAnimation(FLIP_EMOTE_DURATION, 1)
/datum/emote/flip/check_cooldown(mob/user, intentional)
- var/slow_flipper = HAS_TRAIT(user, TRAIT_SLOW_FLIP)
- if(slow_flipper)
- cooldown *= 2
. = ..()
- if(slow_flipper)
- cooldown *= 0.5
if(.)
return
if(!can_run_emote(user, intentional=intentional))
@@ -147,3 +142,27 @@
#undef BEYBLADE_DIZZINESS_DURATION
#undef BEYBLADE_CONFUSION_INCREMENT
#undef BEYBLADE_CONFUSION_LIMIT
+
+
+/datum/emote/jump
+ key = "jump"
+ key_third_person = "jumps"
+ message = "jumps!"
+ // Allows ghosts to jump
+ mob_type_ignore_stat_typecache = list(/mob/dead/observer)
+
+/datum/emote/jump/run_emote(mob/user, params, type_override, intentional)
+ . = ..()
+
+ var/original_transform = user.transform
+ animate(user, transform = user.transform.Translate(0, 4), time = 0.1 SECONDS, flags = ANIMATION_PARALLEL)
+ animate(transform = original_transform, time = 0.1 SECONDS)
+
+/datum/emote/jump/get_sound(mob/user)
+ return 'sound/weapons/thudswoosh.ogg'
+
+// Avoids playing sounds if we're a ghost
+/datum/emote/jump/should_play_sound(mob/user, intentional)
+ if(isliving(user))
+ return ..()
+ return FALSE
diff --git a/code/modules/mob/living/basic/basic.dm b/code/modules/mob/living/basic/basic.dm
index 582af27c3161b..9501c4e21d3e9 100644
--- a/code/modules/mob/living/basic/basic.dm
+++ b/code/modules/mob/living/basic/basic.dm
@@ -266,7 +266,7 @@
REMOVE_TRAIT(src, TRAIT_NO_GLIDE, SPEED_TRAIT)
/mob/living/basic/relaymove(mob/living/user, direction)
- if(user.incapacitated())
+ if(user.incapacitated)
return
return relaydrive(user, direction)
diff --git a/code/modules/mob/living/basic/blob_minions/blob_ai.dm b/code/modules/mob/living/basic/blob_minions/blob_ai.dm
index 5aad05d4656ff..5fc90f3dd676b 100644
--- a/code/modules/mob/living/basic/blob_minions/blob_ai.dm
+++ b/code/modules/mob/living/basic/blob_minions/blob_ai.dm
@@ -46,7 +46,7 @@
ai_movement = /datum/ai_movement/jps
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
- /datum/ai_planning_subtree/find_and_hunt_target/corpses,
+ /datum/ai_planning_subtree/find_and_hunt_target/corpses/human,
/datum/ai_planning_subtree/travel_to_point/and_clear_target,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/attack_obstacle_in_path,
diff --git a/code/modules/mob/living/basic/bots/_bots.dm b/code/modules/mob/living/basic/bots/_bots.dm
index 04b3a7864d21e..cc6ac85c6cbc4 100644
--- a/code/modules/mob/living/basic/bots/_bots.dm
+++ b/code/modules/mob/living/basic/bots/_bots.dm
@@ -26,7 +26,6 @@ GLOBAL_LIST_INIT(command_strings, list(
maximum_survivable_temperature = INFINITY
minimum_survivable_temperature = 0
- has_unlimited_silicon_privilege = TRUE
sentience_type = SENTIENCE_ARTIFICIAL
status_flags = NONE //no default canpush
@@ -59,6 +58,7 @@ GLOBAL_LIST_INIT(command_strings, list(
///All initial access this bot started with.
var/list/initial_access = list()
///Bot-related mode flags on the Bot indicating how they will act. BOT_MODE_ON | BOT_MODE_AUTOPATROL | BOT_MODE_REMOTE_ENABLED | BOT_MODE_CAN_BE_SAPIENT | BOT_MODE_ROUNDSTART_POSSESSION
+ /// DO NOT MODIFY MANUALLY, USE set_bot_mode_flags. If you don't shit breaks BAD
var/bot_mode_flags = BOT_MODE_ON | BOT_MODE_REMOTE_ENABLED | BOT_MODE_CAN_BE_SAPIENT | BOT_MODE_ROUNDSTART_POSSESSION
///Bot-related cover flags on the Bot to deal with what has been done to their cover, including emagging. BOT_COVER_MAINTS_OPEN | BOT_COVER_LOCKED | BOT_COVER_EMAGGED | BOT_COVER_HACKED
var/bot_access_flags = BOT_COVER_LOCKED
@@ -109,6 +109,7 @@ GLOBAL_LIST_INIT(command_strings, list(
/mob/living/basic/bot/Initialize(mapload)
. = ..()
+ add_traits(list(TRAIT_SILICON_ACCESS, TRAIT_REAGENT_SCANNER, TRAIT_UNOBSERVANT), INNATE_TRAIT)
AddElement(/datum/element/ai_retaliate)
RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(handle_loop_movement))
RegisterSignal(src, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(after_attacked))
@@ -151,6 +152,11 @@ GLOBAL_LIST_INIT(command_strings, list(
ai_controller.set_blackboard_key(BB_RADIO_CHANNEL, radio_channel)
update_appearance()
+/mob/living/basic/bot/proc/set_mode_flags(mode_flags)
+ SHOULD_CALL_PARENT(TRUE)
+ bot_mode_flags = mode_flags
+ SEND_SIGNAL(src, COMSIG_BOT_MODE_FLAGS_SET, mode_flags)
+
/mob/living/basic/bot/proc/get_mode()
if(client) //Player bots do not have modes, thus the override. Also an easy way for PDA users/AI to know when a bot is a player.
return span_bold("[paicard ? "pAI Controlled" : "Autonomous"]")
@@ -181,7 +187,7 @@ GLOBAL_LIST_INIT(command_strings, list(
/mob/living/basic/bot/proc/turn_on()
if(stat == DEAD)
return FALSE
- bot_mode_flags |= BOT_MODE_ON
+ set_mode_flags(bot_mode_flags | BOT_MODE_ON)
remove_traits(list(TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), POWER_LACK_TRAIT)
set_light_on(bot_mode_flags & BOT_MODE_ON ? TRUE : FALSE)
update_appearance()
@@ -190,7 +196,7 @@ GLOBAL_LIST_INIT(command_strings, list(
return TRUE
/mob/living/basic/bot/proc/turn_off()
- bot_mode_flags &= ~BOT_MODE_ON
+ set_mode_flags(bot_mode_flags & ~BOT_MODE_ON)
add_traits(on_toggle_traits, POWER_LACK_TRAIT)
set_light_on(bot_mode_flags & BOT_MODE_ON ? TRUE : FALSE)
bot_reset() //Resets an AI's call, should it exist.
@@ -308,7 +314,7 @@ GLOBAL_LIST_INIT(command_strings, list(
return FALSE
bot_access_flags |= BOT_COVER_EMAGGED
bot_access_flags |= BOT_COVER_LOCKED
- bot_mode_flags &= ~BOT_MODE_REMOTE_ENABLED //Manually emagging the bot also locks the AI from controlling it.
+ set_mode_flags(bot_mode_flags & ~BOT_MODE_REMOTE_ENABLED) //Manually emagging the bot also locks the AI from controlling it.
bot_reset()
turn_on() //The bot automatically turns on when emagged, unless recently hit with EMP.
to_chat(src, span_userdanger("(#$*#$^^( OVERRIDE DETECTED"))
@@ -553,9 +559,9 @@ GLOBAL_LIST_INIT(command_strings, list(
switch(command)
if("patroloff")
bot_reset() //HOLD IT!! //OBJECTION!!
- bot_mode_flags &= ~BOT_MODE_AUTOPATROL
+ set_mode_flags(bot_mode_flags & ~BOT_MODE_AUTOPATROL)
if("patrolon")
- bot_mode_flags |= BOT_MODE_AUTOPATROL
+ set_mode_flags(bot_mode_flags | BOT_MODE_AUTOPATROL)
if("summon")
summon_bot(user, user_access = user_access)
if("ejectpai")
@@ -607,10 +613,10 @@ GLOBAL_LIST_INIT(command_strings, list(
if("maintenance")
bot_access_flags ^= BOT_COVER_MAINTS_OPEN
if("patrol")
- bot_mode_flags ^= BOT_MODE_AUTOPATROL
+ set_mode_flags(bot_mode_flags ^ BOT_MODE_AUTOPATROL)
bot_reset()
if("airplane")
- bot_mode_flags ^= BOT_MODE_REMOTE_ENABLED
+ set_mode_flags(bot_mode_flags ^ BOT_MODE_REMOTE_ENABLED)
if("hack")
if(!HAS_SILICON_ACCESS(the_user))
return
diff --git a/code/modules/mob/living/basic/bots/bot_ai.dm b/code/modules/mob/living/basic/bots/bot_ai.dm
index b7cd5dcabd394..a0abbbfd48b40 100644
--- a/code/modules/mob/living/basic/bots/bot_ai.dm
+++ b/code/modules/mob/living/basic/bots/bot_ai.dm
@@ -55,7 +55,15 @@
var/mob/living/basic/bot/bot_pawn = pawn
bot_pawn.bot_reset()
-/datum/ai_controller/basic_controller/bot/able_to_run()
+/datum/ai_controller/basic_controller/bot/setup_able_to_run()
+ . = ..()
+ RegisterSignal(pawn, COMSIG_BOT_MODE_FLAGS_SET, PROC_REF(update_able_to_run))
+
+/datum/ai_controller/basic_controller/bot/clear_able_to_run()
+ UnregisterSignal(pawn, list(COMSIG_BOT_MODE_FLAGS_SET))
+ return ..()
+
+/datum/ai_controller/basic_controller/bot/get_able_to_run()
var/mob/living/basic/bot/bot_pawn = pawn
if(!(bot_pawn.bot_mode_flags & BOT_MODE_ON))
return FALSE
diff --git a/code/modules/mob/living/basic/bots/bot_hud.dm b/code/modules/mob/living/basic/bots/bot_hud.dm
index 61aee9f10b180..345fcd2bbe7bf 100644
--- a/code/modules/mob/living/basic/bots/bot_hud.dm
+++ b/code/modules/mob/living/basic/bots/bot_hud.dm
@@ -47,12 +47,14 @@
if(isnull(ai_controller))
return
+ //Removes path images and handles removing hud client images
clear_path_hud()
+ var/list/path_huds_watching_me = list(GLOB.huds[DATA_HUD_DIAGNOSTIC], GLOB.huds[DATA_HUD_BOT_PATH])
+
var/list/path_images = active_hud_list[DIAG_PATH_HUD]
LAZYCLEARLIST(path_images)
- var/list/path_huds_watching_me = list(GLOB.huds[DATA_HUD_DIAGNOSTIC], GLOB.huds[DATA_HUD_BOT_PATH])
var/atom/move_target = ai_controller.current_movement_target
if(move_target != ai_controller.blackboard[BB_BEACON_TARGET])
@@ -62,9 +64,6 @@
if(!length(our_path))
return
- for(var/datum/atom_hud/hud as anything in path_huds_watching_me)
- hud.remove_atom_from_hud(src)
-
for(var/index in 1 to our_path.len)
if(index == 1 || index == our_path.len)
continue
@@ -75,7 +74,9 @@
var/next_direction = get_dir(previous_turf, next_turf)
var/previous_direction = get_dir(current_turf, previous_turf)
- var/image/path_display = image(icon = path_image_icon, loc = current_turf, icon_state = path_image_icon_state, layer = GAME_PLANE, dir = next_direction)
+ var/image/path_display = image(icon = path_image_icon, loc = current_turf, icon_state = path_image_icon_state, layer = BOT_PATH_LAYER, dir = next_direction)
+
+ SET_PLANE(path_display, GAME_PLANE, current_turf)
if((ISDIAGONALDIR(next_direction) && (previous_direction & (NORTH|SOUTH))))
var/turn_value = (next_direction == SOUTHWEST || next_direction == NORTHEAST) ? 90 : -90
@@ -118,3 +119,8 @@
animate(our_image, alpha = 0, time = 0.3 SECONDS)
current_pathed_turfs -= index
+ // Call hud remove handlers to ensure viewing user client images are removed
+ var/list/path_huds_watching_me = list(GLOB.huds[DATA_HUD_DIAGNOSTIC], GLOB.huds[DATA_HUD_BOT_PATH])
+ for(var/datum/atom_hud/hud as anything in path_huds_watching_me)
+ hud.remove_atom_from_hud(src)
+
diff --git a/code/modules/mob/living/basic/bots/cleanbot/cleanbot.dm b/code/modules/mob/living/basic/bots/cleanbot/cleanbot.dm
index cd30dd4057d0e..1e2bfdb732b16 100644
--- a/code/modules/mob/living/basic/bots/cleanbot/cleanbot.dm
+++ b/code/modules/mob/living/basic/bots/cleanbot/cleanbot.dm
@@ -239,7 +239,8 @@
// Actions received from TGUI
/mob/living/basic/bot/cleanbot/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
- if(. || (bot_access_flags & BOT_COVER_LOCKED) && !HAS_SILICON_ACCESS(ui.user))
+ var/mob/user = ui.user
+ if(. || (bot_access_flags & BOT_COVER_LOCKED) && !HAS_SILICON_ACCESS(user))
return
switch(action)
diff --git a/code/modules/mob/living/basic/bots/firebot/firebot.dm b/code/modules/mob/living/basic/bots/firebot/firebot.dm
index e6eeaa2031cc6..921909aa8a531 100644
--- a/code/modules/mob/living/basic/bots/firebot/firebot.dm
+++ b/code/modules/mob/living/basic/bots/firebot/firebot.dm
@@ -112,9 +112,10 @@
return data
// Actions received from TGUI
-/mob/living/basic/bot/firebot/ui_act(action, params)
+/mob/living/basic/bot/firebot/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
- if(. || (bot_access_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(usr)))
+ var/mob/user = ui.user
+ if(. || (bot_access_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(user)))
return
switch(action)
diff --git a/code/modules/mob/living/basic/bots/honkbots/honkbot.dm b/code/modules/mob/living/basic/bots/honkbots/honkbot.dm
index 7f869995c31a3..38884bec503da 100644
--- a/code/modules/mob/living/basic/bots/honkbots/honkbot.dm
+++ b/code/modules/mob/living/basic/bots/honkbots/honkbot.dm
@@ -88,7 +88,7 @@
/mob/living/basic/bot/honkbot/ui_data(mob/user)
var/list/data = ..()
- if(!(bot_access_flags & BOT_COVER_LOCKED) || issilicon(user) || isAdminGhostAI(user))
+ if(!(bot_access_flags & BOT_COVER_LOCKED) || HAS_SILICON_ACCESS(user))
data["custom_controls"]["slip_people"] = honkbot_flags & HONKBOT_MODE_SLIP
data["custom_controls"]["fake_cuff"] = honkbot_flags & HONKBOT_HANDCUFF_TARGET
data["custom_controls"]["check_ids"] = honkbot_flags & HONKBOT_CHECK_IDS
@@ -97,7 +97,8 @@
/mob/living/basic/bot/honkbot/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
- if(. || !isliving(ui.user) || (bot_access_flags & BOT_COVER_LOCKED) && !(ui.user.has_unlimited_silicon_privilege))
+ var/mob/user = ui.user
+ if(. || !isliving(user) || (bot_access_flags & BOT_COVER_LOCKED) && !HAS_SILICON_ACCESS(user))
return
switch(action)
if("slip_people")
diff --git a/code/modules/mob/living/basic/bots/medbot/medbot.dm b/code/modules/mob/living/basic/bots/medbot/medbot.dm
index 945dd5c709fb6..7b100aa554582 100644
--- a/code/modules/mob/living/basic/bots/medbot/medbot.dm
+++ b/code/modules/mob/living/basic/bots/medbot/medbot.dm
@@ -210,9 +210,9 @@
// Actions received from TGUI
/mob/living/basic/bot/medbot/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
- if(. || !isliving(ui.user) || (bot_access_flags & BOT_COVER_LOCKED) && !HAS_SILICON_ACCESS(ui.user))
+ var/mob/user = ui.user
+ if(. || !isliving(ui.user) || (bot_access_flags & BOT_COVER_LOCKED) && !HAS_SILICON_ACCESS(user))
return
- var/mob/living/our_user = ui.user
switch(action)
if("heal_threshold")
var/adjust_num = round(text2num(params["threshold"]))
@@ -229,7 +229,7 @@
medical_mode_flags ^= MEDBOT_STATIONARY_MODE
if("sync_tech")
if(!linked_techweb)
- to_chat(our_user, span_notice("No research techweb connected."))
+ to_chat(user, span_notice("No research techweb connected."))
return
var/oldheal_amount = heal_amount
var/tech_boosters
diff --git a/code/modules/mob/living/basic/drone/_drone.dm b/code/modules/mob/living/basic/drone/_drone.dm
index 6501e35d51dc2..983ade8de0bcc 100644
--- a/code/modules/mob/living/basic/drone/_drone.dm
+++ b/code/modules/mob/living/basic/drone/_drone.dm
@@ -37,7 +37,6 @@
bubble_icon = "machine"
initial_language_holder = /datum/language_holder/drone
mob_size = MOB_SIZE_SMALL
- has_unlimited_silicon_privilege = TRUE
damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, STAMINA = 0, OXY = 0)
hud_possible = list(DIAG_STAT_HUD, DIAG_HUD, ANTAG_HUD)
unique_name = TRUE
@@ -202,7 +201,16 @@
for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds)
diag_hud.add_atom_to_hud(src)
- add_traits(list(TRAIT_VENTCRAWLER_ALWAYS, TRAIT_NEGATES_GRAVITY, TRAIT_LITERATE, TRAIT_KNOW_ENGI_WIRES, TRAIT_ADVANCEDTOOLUSER), INNATE_TRAIT)
+ add_traits(list(
+ TRAIT_VENTCRAWLER_ALWAYS,
+ TRAIT_NEGATES_GRAVITY,
+ TRAIT_LITERATE,
+ TRAIT_KNOW_ENGI_WIRES,
+ TRAIT_ADVANCEDTOOLUSER,
+ TRAIT_SILICON_ACCESS,
+ TRAIT_REAGENT_SCANNER,
+ TRAIT_UNOBSERVANT,
+ ), INNATE_TRAIT)
listener = new(list(ALARM_ATMOS, ALARM_FIRE, ALARM_POWER), list(z))
RegisterSignal(listener, COMSIG_ALARM_LISTENER_TRIGGERED, PROC_REF(alarm_triggered))
@@ -222,7 +230,7 @@
holder.pixel_y = hud_icon.Height() - world.icon_size
if(stat == DEAD)
holder.icon_state = "huddead2"
- else if(incapacitated())
+ else if(incapacitated)
holder.icon_state = "hudoffline"
else
holder.icon_state = "hudstat"
diff --git a/code/modules/mob/living/basic/drone/drone_tools.dm b/code/modules/mob/living/basic/drone/drone_tools.dm
index 32ec1bb152848..7effefcd7f906 100644
--- a/code/modules/mob/living/basic/drone/drone_tools.dm
+++ b/code/modules/mob/living/basic/drone/drone_tools.dm
@@ -25,7 +25,7 @@
atom_storage.max_total_storage = 40
atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL
atom_storage.max_slots = 10
- atom_storage.rustle_sound = FALSE
+ atom_storage.do_rustle = FALSE
atom_storage.set_holdable(drone_builtins)
diff --git a/code/modules/mob/living/basic/drone/visuals_icons.dm b/code/modules/mob/living/basic/drone/visuals_icons.dm
index 7a2122022f81b..32ff97da305a1 100644
--- a/code/modules/mob/living/basic/drone/visuals_icons.dm
+++ b/code/modules/mob/living/basic/drone/visuals_icons.dm
@@ -108,7 +108,7 @@
/mob/living/basic/drone/proc/check_menu()
if(!istype(src))
return FALSE
- if(incapacitated())
+ if(incapacitated)
return FALSE
return TRUE
diff --git a/code/modules/mob/living/basic/farm_animals/deer.dm b/code/modules/mob/living/basic/farm_animals/deer/deer.dm
similarity index 74%
rename from code/modules/mob/living/basic/farm_animals/deer.dm
rename to code/modules/mob/living/basic/farm_animals/deer/deer.dm
index c51be81b77d04..eb443def65996 100644
--- a/code/modules/mob/living/basic/farm_animals/deer.dm
+++ b/code/modules/mob/living/basic/farm_animals/deer/deer.dm
@@ -24,28 +24,16 @@
/// Things that will scare us into being stationary. Vehicles are scary to deers because they might have headlights.
var/static/list/stationary_scary_things = list(/obj/vehicle)
+
/mob/living/basic/deer/Initialize(mapload)
. = ..()
+ AddElement(/datum/element/ai_retaliate)
AddElement(/datum/element/footstep, footstep_type = FOOTSTEP_MOB_SHOE)
var/time_to_freeze_for = (rand(5, 10) SECONDS)
ai_controller.set_blackboard_key(BB_STATIONARY_SECONDS, time_to_freeze_for)
ai_controller.set_blackboard_key(BB_STATIONARY_COOLDOWN, (time_to_freeze_for * (rand(3, 5))))
ai_controller.set_blackboard_key(BB_STATIONARY_TARGETS, typecacheof(stationary_scary_things))
-/datum/ai_controller/basic_controller/deer
- blackboard = list(
- BB_STATIONARY_MOVE_TO_TARGET = TRUE,
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
- )
- ai_traits = STOP_MOVING_WHEN_PULLED
- ai_movement = /datum/ai_movement/basic_avoidance
- idle_behavior = /datum/idle_behavior/idle_random_walk
- planning_subtrees = list(
- /datum/ai_planning_subtree/random_speech/deer,
- /datum/ai_planning_subtree/stare_at_thing,
- /datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee,
- /datum/ai_planning_subtree/flee_target,
- )
/// Cold resistent and doesn't need to breathe
/mob/living/basic/deer/ice
diff --git a/code/modules/mob/living/basic/farm_animals/deer/deer_ai.dm b/code/modules/mob/living/basic/farm_animals/deer/deer_ai.dm
new file mode 100644
index 0000000000000..f17e0c9014fba
--- /dev/null
+++ b/code/modules/mob/living/basic/farm_animals/deer/deer_ai.dm
@@ -0,0 +1,156 @@
+/datum/ai_controller/basic_controller/deer
+ blackboard = list(
+ BB_STATIONARY_MOVE_TO_TARGET = TRUE,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
+ )
+ ai_traits = STOP_MOVING_WHEN_PULLED
+ ai_movement = /datum/ai_movement/basic_avoidance
+ idle_behavior = /datum/idle_behavior/idle_random_walk
+ planning_subtrees = list(
+ /datum/ai_planning_subtree/random_speech/deer,
+ /datum/ai_planning_subtree/stare_at_thing,
+ /datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee,
+ /datum/ai_planning_subtree/flee_target,
+ /datum/ai_planning_subtree/rest_at_home,
+ /datum/ai_planning_subtree/play_with_friends,
+ /datum/ai_planning_subtree/find_and_hunt_target/mark_territory,
+ /datum/ai_planning_subtree/find_and_hunt_target/graze,
+ /datum/ai_planning_subtree/find_and_hunt_target/drink_water,
+ )
+
+
+///subtree to go around drinking water
+/datum/ai_planning_subtree/find_and_hunt_target/drink_water
+ target_key = BB_DEER_WATER_TARGET
+ finding_behavior = /datum/ai_behavior/find_and_set/in_list/turf_types
+ hunting_behavior = /datum/ai_behavior/hunt_target/drink_water
+ hunt_targets = list(/turf/open/water)
+ hunt_range = 7
+ hunt_chance = 5
+
+
+/datum/ai_behavior/hunt_target/drink_water
+ always_reset_target = TRUE
+ hunt_cooldown = 20 SECONDS
+
+
+/datum/ai_behavior/hunt_target/drink_water/target_caught(mob/living/hunter, atom/hunted)
+ var/static/list/possible_emotes = list("drinks the water!", "dances in the water!", "splashes around happily!")
+ hunter.manual_emote(pick(possible_emotes))
+
+
+///subtree to go around grazing
+/datum/ai_planning_subtree/find_and_hunt_target/graze
+ target_key = BB_DEER_GRASS_TARGET
+ finding_behavior = /datum/ai_behavior/find_and_set/in_list/turf_types
+ hunting_behavior = /datum/ai_behavior/hunt_target/eat_grass
+ hunt_targets = list(/turf/open/floor/grass)
+ hunt_range = 7
+ hunt_chance = 45
+
+
+/datum/ai_behavior/hunt_target/eat_grass
+ always_reset_target = TRUE
+ hunt_cooldown = 15 SECONDS
+
+
+/datum/ai_behavior/hunt_target/eat_grass/target_caught(mob/living/hunter, atom/hunted)
+ var/static/list/possible_emotes = list("eats the grass!", "munches down the grass!", "chews on the grass!")
+ hunter.manual_emote(pick(possible_emotes))
+
+
+///subtree to go around playing with other deers
+/datum/ai_planning_subtree/play_with_friends
+
+
+/datum/ai_planning_subtree/play_with_friends/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
+ var/static/list/emote_list = list("plays with", "dances with", "celebrates with")
+ var/static/list/friend_types = typecacheof(list(/mob/living/basic/deer))
+ if(controller.blackboard_key_exists(BB_DEER_PLAYFRIEND))
+ controller.queue_behavior(/datum/ai_behavior/emote_on_target, BB_DEER_PLAYFRIEND, emote_list)
+ if(SPT_PROB(3, seconds_per_tick))
+ controller.queue_behavior(/datum/ai_behavior/find_hunt_target/valid_deer, BB_DEER_PLAYFRIEND, friend_types)
+ return SUBTREE_RETURN_FINISH_PLANNING
+
+
+/datum/ai_behavior/emote_on_target/deer_play
+
+
+/datum/ai_behavior/emote_on_target/deer_play/run_emote(mob/living/living_pawn, atom/target, list/emote_list)
+ . = ..()
+ living_pawn.spin(spintime = 4, speed = 1)
+
+
+/datum/ai_behavior/find_hunt_target/valid_deer/valid_dinner(mob/living/source, mob/living/deer, radius, datum/ai_controller/controller, seconds_per_tick)
+ if(deer.stat == DEAD)
+ return FALSE
+ if(!can_see(source, deer, radius))
+ return FALSE
+ deer.ai_controller?.set_blackboard_key(BB_DEER_PLAYFRIEND, source)
+ return can_see(source, deer, radius)
+
+
+///subtree to mark trees as territories
+/datum/ai_planning_subtree/find_and_hunt_target/mark_territory
+ target_key = BB_DEER_TREE_TARGET
+ finding_behavior = /datum/ai_behavior/find_hunt_target
+ hunting_behavior = /datum/ai_behavior/hunt_target/mark_territory
+ hunt_targets = list(/obj/structure/flora/tree)
+ hunt_range = 7
+ hunt_chance = 75
+
+
+/datum/ai_behavior/hunt_target/mark_territory
+ always_reset_target = TRUE
+ hunt_cooldown = 15 SECONDS
+
+
+/datum/ai_behavior/hunt_target/mark_territory/target_caught(mob/living/hunter, atom/hunted)
+ hunter.manual_emote("marks [hunted] with its hooves!")
+ hunter.ai_controller.set_blackboard_key(BB_DEER_TREEHOME, hunted)
+
+
+/datum/ai_planning_subtree/find_and_hunt_target/mark_territory/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
+ if(controller.blackboard_key_exists(BB_DEER_TREEHOME)) //already found our home, abort!
+ return
+ return ..()
+
+
+/datum/ai_planning_subtree/rest_at_home/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
+ if(controller.blackboard[BB_DEER_RESTING] > world.time) //we're resting for now, nothing more to do
+ return SUBTREE_RETURN_FINISH_PLANNING
+ if(!controller.blackboard_key_exists(BB_DEER_TREEHOME) || controller.blackboard[BB_DEER_NEXT_REST_TIMER] > world.time)
+ return
+ controller.queue_behavior(/datum/ai_behavior/return_home, BB_DEER_TREEHOME)
+
+
+/datum/ai_behavior/return_home
+ required_distance = 0
+ behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION
+ ///minimum time till next rest
+ var/minimum_time = 2 MINUTES
+ ///maximum time till next rest
+ var/maximum_time = 4 MINUTES
+
+
+/datum/ai_behavior/return_home/setup(datum/ai_controller/controller, target_key)
+ . = ..()
+ var/atom/target = controller.blackboard[target_key]
+ if(QDELETED(target))
+ return FALSE
+ var/list/possible_turfs = get_adjacent_open_turfs(target)
+ shuffle_inplace(possible_turfs)
+ for(var/turf/possible_turf as anything in possible_turfs)
+ if(!possible_turf.is_blocked_turf())
+ set_movement_target(controller, possible_turf)
+ return TRUE
+ return FALSE
+
+
+/datum/ai_behavior/return_home/perform(seconds_per_tick, datum/ai_controller/controller, target_key)
+ var/mob/living/living_pawn = controller.pawn
+ var/static/list/possible_emotes = list("rests its legs...", "yawns and naps...", "curls up and rests...")
+ living_pawn.manual_emote(pick(possible_emotes))
+ controller.set_blackboard_key(BB_DEER_RESTING, world.time + 15 SECONDS)
+ controller.set_blackboard_key(BB_DEER_NEXT_REST_TIMER, world.time + rand(minimum_time, maximum_time))
+ return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED
diff --git a/code/modules/mob/living/basic/guardian/guardian_creator.dm b/code/modules/mob/living/basic/guardian/guardian_creator.dm
index 441a60124a7bf..08a28041cc845 100644
--- a/code/modules/mob/living/basic/guardian/guardian_creator.dm
+++ b/code/modules/mob/living/basic/guardian/guardian_creator.dm
@@ -129,7 +129,7 @@ GLOBAL_LIST_INIT(guardian_radial_images, setup_guardian_radial())
/obj/item/guardian_creator/proc/check_menu(mob/living/user)
if(!istype(user))
return FALSE
- if(user.incapacitated() || !user.is_holding(src) || used)
+ if(user.incapacitated || !user.is_holding(src) || used)
return FALSE
return TRUE
diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm
index 11fd7b6aa260f..0556affe76184 100644
--- a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm
+++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon_loot.dm
@@ -8,7 +8,7 @@
var/static/list/comic_phrases = list("BOOM", "BANG", "KABLOW", "KAPOW", "OUCH", "BAM", "KAPOW", "WHAM", "POW", "KABOOM")
/obj/item/crusher_trophy/brimdemon_fang/effect_desc()
- return "mark detonation creates visual and audiosensory effects on the target"
+ return "mark detonation to create visual and audiosensory effects at the target"
/obj/item/crusher_trophy/brimdemon_fang/on_mark_detonation(mob/living/target, mob/living/user)
target.balloon_alert_to_viewers("[pick(comic_phrases)]!")
diff --git a/code/modules/mob/living/basic/lavaland/legion/legion.dm b/code/modules/mob/living/basic/lavaland/legion/legion.dm
index 1abd916461bb8..12bf6555d97d4 100644
--- a/code/modules/mob/living/basic/lavaland/legion/legion.dm
+++ b/code/modules/mob/living/basic/lavaland/legion/legion.dm
@@ -10,7 +10,7 @@
icon_living = "legion"
icon_dead = "legion"
icon_gib = "syndicate_gib"
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
+ mob_biotypes = MOB_ORGANIC|MOB_SPECIAL|MOB_UNDEAD
basic_mob_flags = DEL_ON_DEATH
speed = 3
maxHealth = 75
diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm
index 7dcbc4ae325b0..8c879d3ab48c8 100644
--- a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm
+++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm
@@ -45,6 +45,7 @@
AddElement(/datum/element/mob_grabber)
AddElement(/datum/element/footstep, FOOTSTEP_MOB_CLAW)
AddElement(/datum/element/basic_eating, food_types = target_foods)
+ AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean"))
AddComponent(\
/datum/component/amputating_limbs,\
surgery_time = snip_speed, \
diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm
index 7ae64e9fb8a5c..a23bcf7801b2e 100644
--- a/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm
+++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_ai_controller.dm
@@ -46,9 +46,10 @@
/datum/targeting_strategy/basic/raptor
-//dont attack anyone with the neutral faction.
+//dont attack anyone that shares our factions.
/datum/targeting_strategy/basic/raptor/faction_check(datum/ai_controller/controller, mob/living/living_mob, mob/living/the_target)
- return (the_target.faction.Find(FACTION_NEUTRAL) || the_target.faction.Find(FACTION_RAPTOR))
+ . = ..()
+ return .
/datum/ai_controller/basic_controller/baby_raptor
blackboard = list(
diff --git a/code/modules/mob/living/basic/revolutionary.dm b/code/modules/mob/living/basic/revolutionary.dm
new file mode 100644
index 0000000000000..407f2c0997504
--- /dev/null
+++ b/code/modules/mob/living/basic/revolutionary.dm
@@ -0,0 +1,146 @@
+/mob/living/basic/revolutionary
+ name = "Revolutionary"
+ desc = "They stand for a cause..."
+ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
+ faction = list(FACTION_HOSTILE)
+ icon = 'icons/mob/simple/simple_human.dmi'
+ gender = MALE
+ basic_mob_flags = DEL_ON_DEATH
+ attack_verb_continuous = "robusts"
+ attack_verb_simple = "robust"
+ maxHealth = 50
+ health = 50
+ melee_damage_lower = 15
+ melee_damage_upper = 20
+ obj_damage = 20
+ attack_sound = 'sound/weapons/smash.ogg'
+ ai_controller = /datum/ai_controller/basic_controller/revolutionary
+ /// list of weapons we can have
+ var/static/list/possible_weapons = list(
+ /obj/item/storage/toolbox/mechanical = "robust",
+ /obj/item/spear = "pierce",
+ /obj/item/fireaxe = "slice",
+ /obj/item/melee/baseball_bat = "bat",
+ /obj/item/melee/baton = "discipline",
+ )
+ /// List of things to shout
+ var/static/list/phrases = list(
+ "The revolution will not be televized!",
+ "VIVA!",
+ "Dirty pig!",
+ "Gondola meat is murder!",
+ "Free Cargonia!",
+ "Mime rights are human rights!",
+ "猫娘 Free Terry!",
+ )
+ /// List of causes to #support
+ var/static/list/causes = list(
+ "Worker's rights",
+ "Icemoon climate change",
+ "Fair clown treatment",
+ "Lizards",
+ "Moths",
+ "Stop Lavaland drilling",
+ "The Captain has been replaced by a robot",
+ "Free Cargonia",
+ "Befriend all space dragons",
+ "The Grey Tide",
+ "Rising cost of medbay",
+ )
+ /// Monkey screeches
+ var/static/list/monkey_screeches = list(
+ 'sound/creatures/monkey/monkey_screech_1.ogg',
+ 'sound/creatures/monkey/monkey_screech_2.ogg',
+ 'sound/creatures/monkey/monkey_screech_3.ogg',
+ 'sound/creatures/monkey/monkey_screech_4.ogg',
+ )
+ /// Male screams
+ var/static/list/male_screams = list(
+ 'sound/voice/human/malescream_1.ogg',
+ 'sound/voice/human/malescream_2.ogg',
+ 'sound/voice/human/malescream_3.ogg',
+ 'sound/voice/human/malescream_4.ogg',
+ 'sound/voice/human/malescream_5.ogg',
+ )
+ /// Female screams
+ var/static/list/female_screams = list(
+ 'sound/voice/human/femalescream_1.ogg',
+ 'sound/voice/human/femalescream_2.ogg',
+ 'sound/voice/human/femalescream_3.ogg',
+ 'sound/voice/human/femalescream_4.ogg',
+ 'sound/voice/human/femalescream_5.ogg',
+ )
+
+
+/mob/living/basic/revolutionary/Initialize(mapload)
+ . = ..()
+ shuffle_inplace(phrases)
+ var/static/list/display_emote = list(
+ BB_EMOTE_SAY = phrases,
+ BB_EMOTE_SOUND = monkey_screeches,
+ BB_SPEAK_CHANCE = 5,
+ )
+ ai_controller.set_blackboard_key(BB_BASIC_MOB_SPEAK_LINES, display_emote)
+ var/obj/item/weapon_of_choice = pick(possible_weapons)
+ attack_sound = weapon_of_choice::hitsound
+ attack_verb_simple = possible_weapons[weapon_of_choice]
+ attack_verb_continuous = "[attack_verb_simple]s"
+
+ var/static/list/death_loot = list(/obj/effect/mob_spawn/corpse/human/revolutionary)
+ AddElement(/datum/element/death_drops, death_loot)
+ apply_dynamic_human_appearance(src, mob_spawn_path = /obj/effect/mob_spawn/corpse/human/revolutionary, l_hand = weapon_of_choice)
+
+ gender = pick(MALE, FEMALE, PLURAL)
+ var/first_name
+ switch(gender)
+ if(MALE)
+ first_name = pick(GLOB.first_names_male)
+ death_sound = pick(male_screams + monkey_screeches)
+ if(FEMALE)
+ first_name = pick(GLOB.first_names_female)
+ death_sound = pick(female_screams + monkey_screeches)
+ if(PLURAL)
+ first_name = pick(GLOB.first_names)
+ death_sound = pick(male_screams + female_screams + monkey_screeches)
+
+ fully_replace_character_name(name, "[first_name] [pick(GLOB.last_names)]")
+ desc += span_infoplain("\nToday, that cause is: ")
+ shuffle_inplace(causes)
+ desc += span_notice("#[pick(causes)].")
+
+
+/obj/effect/mob_spawn/corpse/human/revolutionary
+ name = "Revolutionary"
+ outfit = /datum/outfit/revolution
+
+
+/datum/outfit/revolution
+ name = "Revolution"
+ uniform = /obj/item/clothing/under/color/grey
+ head = /obj/item/clothing/head/costume/ushanka
+ mask = /obj/item/clothing/mask/gas
+ gloves = /obj/item/clothing/gloves/color/black
+ shoes = /obj/item/clothing/shoes/jackboots
+
+
+/datum/ai_controller/basic_controller/revolutionary
+ blackboard = list(
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
+ )
+ ai_movement = /datum/ai_movement/basic_avoidance
+ idle_behavior = /datum/idle_behavior/idle_random_walk/less_walking
+ planning_subtrees = list(
+ /datum/ai_planning_subtree/random_speech/blackboard/revolutionary,
+ /datum/ai_planning_subtree/simple_find_target,
+ /datum/ai_planning_subtree/basic_melee_attack_subtree,
+ )
+
+
+/datum/ai_planning_subtree/random_speech/blackboard/revolutionary
+
+
+/datum/ai_planning_subtree/random_speech/blackboard/revolutionary/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
+ if(!controller.blackboard_key_exists(BB_BASIC_MOB_CURRENT_TARGET))
+ return
+
+ return ..()
diff --git a/code/modules/mob/living/basic/slime/ai/behaviours.dm b/code/modules/mob/living/basic/slime/ai/behaviours.dm
index 1cd4677994531..35fe1a60c91a1 100644
--- a/code/modules/mob/living/basic/slime/ai/behaviours.dm
+++ b/code/modules/mob/living/basic/slime/ai/behaviours.dm
@@ -30,14 +30,14 @@
/datum/ai_behavior/find_hunt_target/find_slime_food/valid_dinner(mob/living/basic/slime/hunter, mob/living/dinner, radius, datum/ai_controller/controller, seconds_per_tick)
if(REF(dinner) in hunter.faction) //Don't eat our friends...
- return
+ return FALSE
var/static/list/slime_faction = list(FACTION_SLIME)
if(faction_check(slime_faction, dinner.faction)) //Don't try to eat slimy things, no matter how hungry we are. Anyone else can be betrayed.
- return
+ return FALSE
if(!hunter.can_feed_on(dinner, check_adjacent = FALSE)) //Are they tasty to slimes?
- return
+ return FALSE
//If we are retaliating on someone edible, lets eat them instead
if(dinner == controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET])
@@ -57,6 +57,10 @@
/datum/ai_behavior/hunt_target/unarmed_attack_target/slime
/datum/ai_behavior/hunt_target/unarmed_attack_target/slime/target_caught(mob/living/basic/slime/hunter, mob/living/hunted)
+ if (!hunter.can_feed_on(hunted)) // Target is no longer edible
+ hunter.UnarmedAttack(hunted, TRUE)
+ return
+
if((hunted.body_position != STANDING_UP) || prob(20)) //Not standing, or we rolled well? Feed.
hunter.start_feeding(hunted)
return
@@ -69,6 +73,7 @@
/datum/ai_behavior/hunt_target/unarmed_attack_target/slime/finish_action(datum/ai_controller/controller, succeeded, hunting_target_key, hunting_cooldown_key)
. = ..()
- var/mob/living/living_pawn = controller.pawn
- if(living_pawn.buckled)
+ var/mob/living/basic/slime/slime_pawn = controller.pawn
+ var/atom/target = controller.blackboard[hunting_target_key]
+ if(!slime_pawn.can_feed_on(target))
controller.clear_blackboard_key(hunting_target_key)
diff --git a/code/modules/mob/living/basic/slime/ai/subtrees.dm b/code/modules/mob/living/basic/slime/ai/subtrees.dm
index 66c01e6f6c3c6..056befece5d4b 100644
--- a/code/modules/mob/living/basic/slime/ai/subtrees.dm
+++ b/code/modules/mob/living/basic/slime/ai/subtrees.dm
@@ -31,11 +31,11 @@
/datum/ai_planning_subtree/find_and_hunt_target/find_slime_food/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
var/mob/living/living_pawn = controller.pawn
if(living_pawn.buckled)
- return FALSE
+ return
//Slimes don't want to hunt if they are neither rabid, hungry or feeling attack right now
if( (controller.blackboard[BB_SLIME_HUNGER_LEVEL] == SLIME_HUNGER_NONE) && !controller.blackboard[BB_SLIME_RABID] && isnull(controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET]))
- return FALSE
+ return
return ..()
diff --git a/code/modules/mob/living/basic/slime/feeding.dm b/code/modules/mob/living/basic/slime/feeding.dm
index 2c69aad800113..064ec441cb60b 100644
--- a/code/modules/mob/living/basic/slime/feeding.dm
+++ b/code/modules/mob/living/basic/slime/feeding.dm
@@ -20,7 +20,7 @@
if(check_friendship && (REF(meal) in faction))
return FALSE
- if(check_adjacent && !Adjacent(meal))
+ if(check_adjacent && (!Adjacent(meal) || !isturf(loc)))
return FALSE
if(meal.stat == DEAD)
diff --git a/code/modules/mob/living/basic/slime/slime.dm b/code/modules/mob/living/basic/slime/slime.dm
index 352a8149ca616..6adf4e35f3582 100644
--- a/code/modules/mob/living/basic/slime/slime.dm
+++ b/code/modules/mob/living/basic/slime/slime.dm
@@ -286,7 +286,7 @@
/mob/living/basic/slime/proc/on_slime_pre_attack(mob/living/basic/slime/our_slime, atom/target, proximity, modifiers)
SIGNAL_HANDLER
- if(LAZYACCESS(modifiers, RIGHT_CLICK) && isliving(target) && target != src && usr == src)
+ if(LAZYACCESS(modifiers, RIGHT_CLICK) && isliving(target) && target != src)
if(our_slime.can_feed_on(target))
our_slime.start_feeding(target)
return COMPONENT_HOSTILE_NO_ATTACK
diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp.dm b/code/modules/mob/living/basic/space_fauna/carp/carp.dm
index 816bb7cd838e1..1d32b7809a89e 100644
--- a/code/modules/mob/living/basic/space_fauna/carp/carp.dm
+++ b/code/modules/mob/living/basic/space_fauna/carp/carp.dm
@@ -44,6 +44,8 @@
minimum_survivable_temperature = 0
maximum_survivable_temperature = 1500
+ /// If true we will run away from attackers even at full health
+ var/cowardly = FALSE
/// Cytology cells you can swab from this creature
var/cell_line = CELL_LINE_TABLE_CARP
/// What colour is our 'healing' outline?
@@ -88,7 +90,8 @@
if (cell_line)
AddElement(/datum/element/swabable, cell_line, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5)
AddElement(/datum/element/simple_flying)
- AddElement(/datum/element/ai_flee_while_injured)
+ if (!cowardly)
+ AddElement(/datum/element/ai_flee_while_injured)
setup_eating()
AddComponent(/datum/component/aggro_emote, emote_list = string_list(list("gnashes")))
@@ -267,8 +270,8 @@
///Wild carp that just vibe ya know
/mob/living/basic/carp/passive
- name = "passive carp"
- desc = "A timid, sucker-bearing creature that resembles a fish. "
+ name = "false carp"
+ desc = "A close relative of the space carp which is entirely toothless and feeds by stealing its cousin's leftovers."
icon_state = "base_friend"
icon_living = "base_friend"
@@ -278,11 +281,19 @@
attack_verb_continuous = "suckers"
attack_verb_simple = "suck"
- melee_damage_lower = 4
- melee_damage_upper = 4
+ melee_damage_lower = 0
+ melee_damage_upper = 0
+ cowardly = TRUE
ai_controller = /datum/ai_controller/basic_controller/carp/passive
+ gold_core_spawnable = FRIENDLY_SPAWN
/mob/living/basic/carp/passive/Initialize(mapload)
. = ..()
- AddElement(/datum/element/ai_retaliate)
+ AddComponent(/datum/component/ai_retaliate_advanced, CALLBACK(src, PROC_REF(on_attacked)))
AddElement(/datum/element/pet_bonus, "bloops happily!")
+ ADD_TRAIT(src, TRAIT_PACIFISM, INNATE_TRAIT)
+
+/// If someone slaps one of the school, scatter
+/mob/living/basic/carp/passive/proc/on_attacked(mob/living/attacker)
+ for(var/mob/living/basic/carp/passive/schoolmate in oview(src, 9))
+ schoolmate.ai_controller?.insert_blackboard_key_lazylist(BB_BASIC_MOB_RETALIATE_LIST, attacker)
diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm
index 9a6aea8eff1d2..322d4db193c21 100644
--- a/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm
+++ b/code/modules/mob/living/basic/space_fauna/carp/carp_abilities.dm
@@ -28,6 +28,11 @@
projectile_type = pick(permitted_projectiles)
return ..()
+/datum/action/cooldown/mob_cooldown/projectile_attack/magicarp_bolt/InterceptClickOn(mob/living/caller, params, atom/target)
+ if (!caller.combat_mode)
+ return FALSE
+ return ..()
+
/**
* # Lesser Carp Rift
* Teleport a short distance and leave a short-lived portal for people to follow through
diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.dm
index f104d3566b347..260dce64bdc29 100644
--- a/code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.dm
+++ b/code/modules/mob/living/basic/space_fauna/carp/carp_ai_rift_actions.dm
@@ -7,18 +7,20 @@
var/datum/ai_behavior/rift_behaviour
/// If true we finish planning after this
var/finish_planning = FALSE
+ /// Key to read for flee target
+ var/target_key = BB_BASIC_MOB_CURRENT_TARGET
/datum/ai_planning_subtree/make_carp_rift/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
if (!rift_behaviour)
CRASH("Forgot to specify rift behaviour for [src]")
- if (!controller.blackboard_key_exists(BB_BASIC_MOB_CURRENT_TARGET))
+ if (!controller.blackboard_key_exists(target_key))
return
var/datum/action/cooldown/using_action = controller.blackboard[BB_CARP_RIFT]
if (!using_action?.IsAvailable())
return
- controller.queue_behavior(rift_behaviour, BB_CARP_RIFT, BB_BASIC_MOB_CURRENT_TARGET)
+ controller.queue_behavior(rift_behaviour, BB_CARP_RIFT, target_key)
if (finish_planning)
return SUBTREE_RETURN_FINISH_PLANNING
@@ -31,13 +33,17 @@
finish_planning = TRUE
/datum/ai_planning_subtree/make_carp_rift/panic_teleport/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
- var/atom/movable/fleeing_from = controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET]
+ var/atom/movable/fleeing_from = controller.blackboard[target_key]
if(!QDELETED(fleeing_from) && controller.blackboard[BB_CARPS_FEAR_FISHERMAN] && HAS_TRAIT(fleeing_from, TRAIT_SCARY_FISHERMAN))
return ..()
if (controller.blackboard[BB_BASIC_MOB_STOP_FLEEING])
return
return ..()
+/datum/ai_planning_subtree/make_carp_rift/panic_teleport/flee_key
+ target_key = BB_BASIC_MOB_FLEE_TARGET
+
+
/**
* # Make carp rift (aggressive)
* Plan to teleport towards our target so we can fuck them up
@@ -46,7 +52,7 @@
rift_behaviour = /datum/ai_behavior/make_carp_rift/towards/aggressive
/datum/ai_planning_subtree/make_carp_rift/aggressive_teleport/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
- var/atom/movable/target = controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET]
+ var/atom/movable/target = controller.blackboard[target_key]
if(!QDELETED(target) && controller.blackboard[BB_CARPS_FEAR_FISHERMAN] && HAS_TRAIT(target, TRAIT_SCARY_FISHERMAN))
return
return ..()
diff --git a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm
index 4491ef1149137..ae011f5b14a31 100644
--- a/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm
+++ b/code/modules/mob/living/basic/space_fauna/carp/carp_controllers.dm
@@ -106,22 +106,21 @@
*/
/datum/ai_controller/basic_controller/carp/passive
blackboard = list(
- BB_BASIC_MOB_STOP_FLEEING = TRUE,
- BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/require_traits,
+ BB_FLEE_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends,
- BB_TARGET_PRIORITY_TRAIT = TRAIT_SCARY_FISHERMAN,
BB_CARPS_FEAR_FISHERMAN = TRUE,
+ BB_TARGET_ONLY_WITH_TRAITS = list(TRAIT_SCARY_FISHERMAN),
)
ai_traits = STOP_MOVING_WHEN_PULLED
planning_subtrees = list(
/datum/ai_planning_subtree/pet_planning,
- /datum/ai_planning_subtree/simple_find_nearest_target_to_flee,
- /datum/ai_planning_subtree/make_carp_rift/panic_teleport,
- /datum/ai_planning_subtree/flee_target/from_fisherman,
+ /datum/ai_planning_subtree/simple_find_target/to_flee, // This should only find master fishermen because of the targeting strategy
+ /datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee/from_flee_key,
+ /datum/ai_planning_subtree/make_carp_rift/panic_teleport/flee_key,
+ /datum/ai_planning_subtree/flee_target/from_flee_key,
/datum/ai_planning_subtree/find_food,
- /datum/ai_planning_subtree/attack_obstacle_in_path/carp,
- /datum/ai_planning_subtree/shortcut_to_target_through_carp_rift,
/datum/ai_planning_subtree/make_carp_rift/aggressive_teleport,
- /datum/ai_planning_subtree/basic_melee_attack_subtree/no_fisherman,
+ /datum/ai_planning_subtree/basic_melee_attack_subtree,
/datum/ai_planning_subtree/carp_migration,
)
diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm b/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm
index c55376c4fcc8f..15dfcdc29c045 100644
--- a/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm
+++ b/code/modules/mob/living/basic/space_fauna/netherworld/creature.dm
@@ -55,7 +55,7 @@
// This loop will, at most, loop twice.
for(var/atom/check in check_list)
for(var/mob/living/mob_target in oview(src, 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)
+ if(mob_target.client && !mob_target.is_blind() && !HAS_TRAIT(mob_target, TRAIT_UNOBSERVANT))
return mob_target
for(var/obj/vehicle/sealed/mecha/mecha_mob_target in oview(src, 7))
for(var/mob/mechamob_target as anything in mecha_mob_target.occupants)
@@ -79,7 +79,7 @@
. = ..()
if (!owner)
return
- observed_blocker = owner.AddComponent(/datum/component/unobserved_actor, unobserved_flags = NO_OBSERVED_ACTIONS)
+ observed_blocker = owner.AddComponent(/datum/component/unobserved_actor, unobserved_flags = NO_OBSERVED_ACTIONS, affected_actions = list(type))
/datum/action/cooldown/spell/jaunt/creature_teleport/Remove(mob/living/remove_from)
QDEL_NULL(observed_blocker)
diff --git a/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/wrap.dm b/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/wrap.dm
index e7771f075a871..088905a5ae2f3 100644
--- a/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/wrap.dm
+++ b/code/modules/mob/living/basic/space_fauna/spider/spider_abilities/wrap.dm
@@ -26,7 +26,7 @@
/datum/action/cooldown/mob_cooldown/wrap/IsAvailable(feedback = FALSE)
. = ..()
- if(!. || owner.incapacitated())
+ if(!. || owner.incapacitated)
return FALSE
if(DOING_INTERACTION(owner, DOAFTER_SOURCE_SPIDER))
if (feedback)
diff --git a/code/modules/mob/living/basic/vermin/crab.dm b/code/modules/mob/living/basic/vermin/crab.dm
index 18a935443a11d..3c1c9146a064d 100644
--- a/code/modules/mob/living/basic/vermin/crab.dm
+++ b/code/modules/mob/living/basic/vermin/crab.dm
@@ -34,6 +34,7 @@
AddElement(/datum/element/tiny_mob_hunter, MOB_SIZE_TINY)
AddElement(/datum/element/ai_retaliate)
AddElement(/datum/element/ai_flee_while_injured)
+ AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean"))
//COFFEE! SQUEEEEEEEEE!
/mob/living/basic/crab/coffee
@@ -88,7 +89,6 @@
planning_subtrees = list(
/datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee/from_flee_key,
/datum/ai_planning_subtree/flee_target/from_flee_key,
- /datum/ai_planning_subtree/target_retaliate/to_flee,
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/basic_melee_attack_subtree,
/datum/ai_planning_subtree/random_speech/crab,
diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm
index b4c6f8e682d2d..46419d70e6dee 100644
--- a/code/modules/mob/living/brain/brain_item.dm
+++ b/code/modules/mob/living/brain/brain_item.dm
@@ -437,14 +437,21 @@
/obj/item/organ/internal/brain/lustrous/on_mob_remove(mob/living/carbon/organ_owner, special)
. = ..()
organ_owner.cure_trauma_type(/datum/brain_trauma/special/bluespace_prophet, TRAUMA_RESILIENCE_ABSOLUTE)
+ organ_owner.RemoveElement(/datum/element/tenacious)
/obj/item/organ/internal/brain/lustrous/on_mob_insert(mob/living/carbon/organ_owner, special)
. = ..()
organ_owner.gain_trauma(/datum/brain_trauma/special/bluespace_prophet, TRAUMA_RESILIENCE_ABSOLUTE)
+ organ_owner.AddElement(/datum/element/tenacious)
/obj/item/organ/internal/brain/felinid //A bit smaller than average
brain_size = 0.8
+/obj/item/organ/internal/brain/lizard //A bit smaller than average
+ name = "lizard brain"
+ desc = "This juicy piece of meat has a oversized brain stem and cerebellum, with not much of a limbic system to speak of at all. You would expect it's owner to be pretty cold blooded."
+ organ_traits = list(TRAIT_TACKLING_TAILED_DEFENDER)
+
/obj/item/organ/internal/brain/abductor
name = "grey brain"
desc = "A piece of juicy meat found in an ayy lmao's head."
diff --git a/code/modules/mob/living/carbon/alien/adult/adult.dm b/code/modules/mob/living/carbon/alien/adult/adult.dm
index ad005888178ac..663419ce22cff 100644
--- a/code/modules/mob/living/carbon/alien/adult/adult.dm
+++ b/code/modules/mob/living/carbon/alien/adult/adult.dm
@@ -78,6 +78,7 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list(
SEND_SIGNAL(src, COMSIG_MOVABLE_SET_GRAB_STATE, newstate)
. = grab_state
grab_state = newstate
+ update_incapacitated()
switch(grab_state) // Current state.
if(GRAB_PASSIVE)
REMOVE_TRAIT(pulling, TRAIT_IMMOBILIZED, CHOKEHOLD_TRAIT)
@@ -101,7 +102,7 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list(
/mob/living/carbon/alien/adult/proc/can_consume(atom/movable/poor_soul)
if(!isliving(poor_soul) || pulling != poor_soul)
return FALSE
- if(incapacitated() || grab_state < GRAB_AGGRESSIVE || stat != CONSCIOUS)
+ if(incapacitated || grab_state < GRAB_AGGRESSIVE || stat != CONSCIOUS)
return FALSE
if(get_dir(src, poor_soul) != dir) // Gotta face em 4head
return FALSE
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 95103340bdae9..a4becbcd0eb60 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -1206,7 +1206,7 @@
return bodyparts.len > 2 && ..()
/mob/living/carbon/proc/hypnosis_vulnerable()
- if(HAS_TRAIT(src, TRAIT_MINDSHIELD))
+ if(HAS_MIND_TRAIT(src, TRAIT_UNCONVERTABLE))
return FALSE
if(has_status_effect(/datum/status_effect/hallucination) || has_status_effect(/datum/status_effect/drugginess))
return TRUE
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 79af6c802d623..978714e9bf7a3 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -395,7 +395,7 @@
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
// Shake animation
- if (incapacitated())
+ if (incapacitated)
shake_up_animation()
/mob/proc/shake_up_animation()
@@ -650,6 +650,12 @@
/// Randomise a body part and organ of this mob
/mob/living/carbon/proc/bioscramble(scramble_source)
+ if(!(mob_biotypes & MOB_ORGANIC))
+ return FALSE
+
+ if (HAS_TRAIT(src, TRAIT_GENELESS))
+ return FALSE
+
if (run_armor_check(attack_flag = BIO, absorb_text = "Your armor protects you from [scramble_source]!") >= 100)
return FALSE
diff --git a/code/modules/mob/living/carbon/human/_species.dm b/code/modules/mob/living/carbon/human/_species.dm
index 5ed52fd84b628..dec49c2e0f726 100644
--- a/code/modules/mob/living/carbon/human/_species.dm
+++ b/code/modules/mob/living/carbon/human/_species.dm
@@ -601,7 +601,7 @@ GLOBAL_LIST_EMPTY(features_by_species)
// Anything that's small or smaller can fit into a pocket by default
if((slot & (ITEM_SLOT_RPOCKET|ITEM_SLOT_LPOCKET)) && I.w_class <= POCKET_WEIGHT_CLASS)
excused = TRUE
- else if(slot & (ITEM_SLOT_SUITSTORE|ITEM_SLOT_BACKPACK|ITEM_SLOT_HANDS))
+ else if(slot & (ITEM_SLOT_SUITSTORE|ITEM_SLOT_BACKPACK|ITEM_SLOT_BELTPACK|ITEM_SLOT_HANDS))
excused = TRUE
if(!excused)
return FALSE
@@ -642,6 +642,10 @@ GLOBAL_LIST_EMPTY(features_by_species)
to_chat(H, span_warning("You need a jumpsuit before you can attach this [I.name]!"))
return FALSE
return equip_delay_self_check(I, H, bypass_equip_delay_self)
+ if(ITEM_SLOT_BELTPACK)
+ if(H.belt && H.belt.atom_storage?.can_insert(I, H, messages = TRUE, force = indirect_action ? STORAGE_SOFT_LOCKED : STORAGE_NOT_LOCKED))
+ return TRUE
+ return FALSE
if(ITEM_SLOT_EYES)
if(!H.get_bodypart(BODY_ZONE_HEAD))
return FALSE
@@ -863,14 +867,32 @@ GLOBAL_LIST_EMPTY(features_by_species)
var/damage = rand(attacking_bodypart.unarmed_damage_low, attacking_bodypart.unarmed_damage_high)
var/limb_accuracy = attacking_bodypart.unarmed_effectiveness
+ // In a brawl, drunkenness can make you swing more wildly and with more force, and thus catch your opponent off guard, but it could also totally throw you off if you're too intoxicated
+ // But god is it going to make you sick moving too much while drunk
+ var/user_drunkenness = user.get_drunk_amount()
+
+ if(user_drunkenness && HAS_TRAIT(user, TRAIT_DRUNKEN_BRAWLER)) // Drunken brawlers only need to be intoxicated, doesn't matter how much
+ limb_accuracy += clamp((user.getFireLoss() + user.getBruteLoss()) * 0.5, 10, 200)
+ damage += damage * clamp((user.getFireLoss() + user.getBruteLoss()) / 100, 0.3, 2) //Basically a multiplier of how much extra damage you get based on how low your health is overall. A floor of about a 30%.
+ var/drunken_martial_descriptor = pick("Drunken", "Intoxicated", "Tipsy", "Inebriated", "Delirious", "Day-Drinker's", "Firegut", "Blackout")
+ atk_verb = "[drunken_martial_descriptor] [atk_verb]"
+
+ else if(user_drunkenness > 30 && user_drunkenness < 60)
+ limb_accuracy *= 1.2
+ user.adjust_disgust(2)
+
+ else if(user_drunkenness >= 60)
+ limb_accuracy = -limb_accuracy // good luck landing a punch now, you drunk fuck
+ user.adjust_disgust(5)
+
var/obj/item/bodypart/affecting = target.get_bodypart(target.get_random_valid_zone(user.zone_selected))
var/miss_chance = 100//calculate the odds that a punch misses entirely. considers stamina and brute damage of the puncher. punches miss by default to prevent weird cases
if(attacking_bodypart.unarmed_damage_low)
- if((target.body_position == LYING_DOWN) || HAS_TRAIT(user, TRAIT_PERFECT_ATTACKER) || staggered) //kicks and attacks against staggered targets never miss (provided your species deals more than 0 damage)
+ if((target.body_position == LYING_DOWN) || HAS_TRAIT(user, TRAIT_PERFECT_ATTACKER) || staggered || user_drunkenness && HAS_TRAIT(user, TRAIT_DRUNKEN_BRAWLER)) //kicks and attacks against staggered targets never miss (provided your species deals more than 0 damage). Drunken brawlers while drunk also don't miss
miss_chance = 0
else
- miss_chance = clamp(UNARMED_MISS_CHANCE_BASE - limb_accuracy + user.getStaminaLoss() + (user.getBruteLoss()*0.5), 0, UNARMED_MISS_CHANCE_MAX) //Limb miss chance + various damage. capped at 80 so there is at least a chance to land a hit.
+ miss_chance = clamp(UNARMED_MISS_CHANCE_BASE - limb_accuracy + (user.getFireLoss()*0.5 + user.getBruteLoss()*0.5), 0, UNARMED_MISS_CHANCE_MAX) //Limb miss chance + various damage. capped at 80 so there is at least a chance to land a hit.
if(!damage || !affecting || prob(miss_chance))//future-proofing for species that have 0 damage/weird cases where no zone is targeted
playsound(target.loc, attacking_bodypart.unarmed_miss_sound, 25, TRUE, -1)
@@ -882,6 +904,20 @@ GLOBAL_LIST_EMPTY(features_by_species)
var/armor_block = target.run_armor_check(affecting, MELEE)
+ // In a brawl, drunkenness is a boon if you're a bit drunk but not too much. Else you're easier to hit.
+ // But, generally, getting hit while drunk is probably a good way to start throwing up
+ var/target_drunkenness = target.get_drunk_amount()
+ if(target_drunkenness && HAS_TRAIT(target, TRAIT_DRUNKEN_BRAWLER)) // Drunken brawlers only need to be intoxicated, doesn't matter how much
+ armor_block += 20
+
+ else if(target_drunkenness > 30 && target_drunkenness < 60)
+ armor_block += 10
+ target.adjust_disgust(2)
+
+ else if(target_drunkenness >= 60)
+ armor_block *= 0.5
+ target.adjust_disgust(5)
+
playsound(target.loc, attacking_bodypart.unarmed_attack_sound, 25, TRUE, -1)
if(grappled && attacking_bodypart.grappled_attack_verb)
@@ -909,6 +945,65 @@ GLOBAL_LIST_EMPTY(features_by_species)
target.force_say()
log_combat(user, target, "punched")
+ // If our target is staggered and has sustained enough damage, we can apply a randomly determined status effect to inflict when we punch them.
+ // The effects are based on the punching effectiveness of our attacker. Some effects are not reachable by the average human, and require augmentation to reach or being a species with a heavy punch effectiveness.
+ // Or they're just drunk enough.
+ if(HAS_TRAIT(target, TRAIT_BRAWLING_KNOCKDOWN_BLOCKED) || target.stat == DEAD) //If our target is dead or has specailized armor, there is no way to inflict these effects.
+ return
+
+ // If our target is staggered, the target's armor, minus our limb effectiveness sets the minimum necessary amount of damage sustained to cause an effect. Minimum 40, max 200 for sanity reasons
+ if(staggered && (target.getFireLoss()*0.5 + target.getBruteLoss()*0.5) >= min(armor_block - limb_accuracy, 40, 200))
+ stagger_combo(user, target, atk_verb, limb_accuracy, armor_block)
+
+/// Handles the stagger combo effect of our punch. Follows the same logic as the above proc, target is our owner, user is our attacker.
+/datum/species/proc/stagger_combo(mob/living/carbon/human/user, mob/living/carbon/human/target, atk_verb = "hit", limb_accuracy = 0, armor_block = 0)
+ // Randomly determines the effects of our punch. Limb accuracy is a bonus, armor block is a defense
+ var/roll_them_bones = rand(-20, 20) + limb_accuracy - armor_block
+
+ switch(roll_them_bones)
+ if (-INFINITY to 0) //Mostly a gimmie, this one just keeps them staggered briefly
+ target.adjust_staggered_up_to(1 SECONDS, 10 SECONDS)
+ target.visible_message(span_warning("[user]'s [atk_verb] briefly winds [target]!"), \
+ span_warning("You are briefly winded by [user]'s [atk_verb]!"), span_hear("You hear a thud!"), COMBAT_MESSAGE_RANGE, user)
+ to_chat(user, span_warning("Your [atk_verb] briefly winds [target]!"))
+
+ if (1 to 10)
+ target.adjust_eye_blur_up_to(5 SECONDS, 10 SECONDS)
+ target.visible_message(span_warning("[user]'s [atk_verb] hits [target] so hard, their eyes water! Ouch!"), \
+ span_warning("You are hit viciously by [user]'s [atk_verb], and your eyes begin to water!"), span_hear("You hear a thud!"), COMBAT_MESSAGE_RANGE, user)
+ to_chat(user, span_warning("Your [atk_verb] causes [target] to tear up!"))
+
+ if (11 to 30)
+ target.adjust_dizzy_up_to(5 SECONDS, 10 SECONDS)
+ target.adjust_eye_blur_up_to(5 SECONDS, 10 SECONDS)
+ target.adjust_confusion_up_to(5 SECONDS, 10 SECONDS)
+ target.visible_message(span_warning("[user]'s [atk_verb] hits [target] so hard, they are sent reeling in agony! Damn!"), \
+ span_warning("You are hit viciously by [user]'s [atk_verb], and everything becomes a dizzying blur!"), span_hear("You hear a thud!"), COMBAT_MESSAGE_RANGE, user)
+ to_chat(user, span_warning("Your [atk_verb] causes [target] to go stumbling about in a confuzed daze!"))
+
+ if(31 to 40)
+ target.adjust_dizzy_up_to(5 SECONDS, 10 SECONDS)
+ target.adjust_confusion_up_to(5 SECONDS, 10 SECONDS)
+ target.adjust_temp_blindness_up_to(5 SECONDS, 10 SECONDS)
+ target.visible_message(span_warning("[user]'s [atk_verb] hits [target] so hard, they are sent reeling blindly in agony! Goddamn!"), \
+ span_warning("You are hit viciously by [user]'s [atk_verb], and everything becomes a dizzying, blinding blur!"), span_hear("You hear a thud!"), COMBAT_MESSAGE_RANGE, user)
+ to_chat(user, span_warning("Your [atk_verb] causes [target] to go stumbling about in a confuzed, blind daze!"))
+
+ if (41 to 45)
+ target.apply_effect(4 SECONDS, EFFECT_KNOCKDOWN, armor_block)
+ target.visible_message(span_warning("[user]'s [atk_verb] hits [target] so hard, you knock them off their feet! Holy shit!"), \
+ span_warning("You are hit viciously by [user]'s [atk_verb] and sent toppling head over heels!"), span_hear("You hear a sickening thud!"), COMBAT_MESSAGE_RANGE, user)
+ to_chat(user, span_warning("Your [atk_verb] lands, and you send [target] sailing off their feet!"))
+
+ if (46 to INFINITY)
+ target.apply_effect(4 SECONDS, EFFECT_KNOCKDOWN, armor_block)
+ var/obj/item/bodypart/affecting = target.get_bodypart(target.get_random_valid_zone(user.zone_selected))
+ target.apply_damage(5, BRUTE, affecting, armor_block, wound_bonus = limb_accuracy * 2) //Mostly for the crunchy wounding effect than actually doing damage
+ target.visible_message(span_warning("[user]'s [atk_verb] hits [target] so hard, you hit them off their feet with a loud crunch! Fucking hell!"), \
+ span_warning("You are hit viciously by [user]'s [atk_verb], and suddenly feel an overwhelming pain as you topple head over heels!"), span_hear("You hear a sickening crack and a loud thud!"), COMBAT_MESSAGE_RANGE, user)
+ to_chat(user, span_warning("Your [atk_verb] lands, and [target] is sent crashing to the floor with the immense force! Good god!"))
+
+
/datum/species/proc/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
if(user.body_position != STANDING_UP)
return FALSE
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 9816012218225..cf73704600c7f 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -909,7 +909,7 @@
return ishuman(target) && target.body_position == LYING_DOWN
/mob/living/carbon/human/proc/fireman_carry(mob/living/carbon/target)
- if(!can_be_firemanned(target) || incapacitated(IGNORE_GRAB))
+ if(!can_be_firemanned(target) || INCAPACITATED_IGNORING(src, INCAPABLE_GRAB))
to_chat(src, span_warning("You can't fireman carry [target] while [target.p_they()] [target.p_are()] standing!"))
return
@@ -940,7 +940,7 @@
return
//Second check to make sure they're still valid to be carried
- if(!can_be_firemanned(target) || incapacitated(IGNORE_GRAB) || target.buckled)
+ if(!can_be_firemanned(target) || INCAPACITATED_IGNORING(src, INCAPABLE_GRAB) || target.buckled)
visible_message(span_warning("[src] fails to fireman carry [target]!"))
return
@@ -956,7 +956,7 @@
visible_message(span_warning("[target] fails to climb onto [src]!"))
return
- if(target.incapacitated(IGNORE_GRAB) || incapacitated(IGNORE_GRAB))
+ if(INCAPACITATED_IGNORING(target, INCAPABLE_GRAB) || INCAPACITATED_IGNORING(src, INCAPABLE_GRAB))
target.visible_message(span_warning("[target] can't hang onto [src]!"))
return
diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm
index 3a9004618470f..c561ca28999f1 100644
--- a/code/modules/mob/living/carbon/human/human_helpers.dm
+++ b/code/modules/mob/living/carbon/human/human_helpers.dm
@@ -58,10 +58,13 @@
//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a separate proc as it'll be useful elsewhere
/mob/living/carbon/human/get_visible_name(add_id_name = TRUE, force_real_name = FALSE)
- var/list/identity = list(null, null)
+ var/list/identity = list(null, null, null)
SEND_SIGNAL(src, COMSIG_HUMAN_GET_VISIBLE_NAME, identity)
var/signal_face = LAZYACCESS(identity, VISIBLE_NAME_FACE)
var/signal_id = LAZYACCESS(identity, VISIBLE_NAME_ID)
+ var/force_set = LAZYACCESS(identity, VISIBLE_NAME_FORCED)
+ if(force_set) // our name is overriden by something
+ return signal_face // no need to null-check, because force_set will always set a signal_face
var/face_name = !isnull(signal_face) ? signal_face : get_face_name("")
var/id_name = !isnull(signal_id) ? signal_id : get_id_name("")
if (force_real_name)
@@ -107,6 +110,11 @@
var/obj/item/card/id/id = wear_id
if(HAS_TRAIT(src, TRAIT_UNKNOWN))
. = if_no_id //You get NOTHING, no id name, good day sir
+ var/list/identity = list(null, null, null)
+ SEND_SIGNAL(src, COMSIG_HUMAN_GET_FORCED_NAME, identity)
+ if(identity[VISIBLE_NAME_FORCED])
+ . = identity[VISIBLE_NAME_FACE] // to return forced names when unknown, instead of ID
+ return
if(istype(wallet))
id = wallet.front_id
if(istype(id))
diff --git a/code/modules/mob/living/carbon/human/human_say.dm b/code/modules/mob/living/carbon/human/human_say.dm
index 0ce34ffa27205..8edeeb8088403 100644
--- a/code/modules/mob/living/carbon/human/human_say.dm
+++ b/code/modules/mob/living/carbon/human/human_say.dm
@@ -73,7 +73,7 @@
var/area/our_area = get_area(src)
if(our_area.area_flags & BINARY_JAMMING)
return FALSE
- return dongle.translate_binary
+ return (dongle.special_channels & RADIO_SPECIAL_BINARY)
/mob/living/carbon/human/radio(message, list/message_mods = list(), list/spans, language) //Poly has a copy of this, lazy bastard
. = ..()
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index a24e9cd070d86..d2ad1ad89ae2d 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -52,6 +52,9 @@
if(looking_for == belt)
return ITEM_SLOT_BELT
+ if(belt && (looking_for in belt))
+ return ITEM_SLOT_BELTPACK
+
if(looking_for == wear_id)
return ITEM_SLOT_ID
@@ -197,6 +200,9 @@
return
s_store = equipping
update_suit_storage()
+ if(ITEM_SLOT_BELTPACK)
+ if(!belt || !belt.atom_storage?.attempt_insert(equipping, src, override = TRUE, force = indirect_action ? STORAGE_SOFT_LOCKED : STORAGE_NOT_LOCKED))
+ not_handled = TRUE
else
to_chat(src, span_danger("You are trying to equip this item to an unsupported inventory slot. Report this to a coder!"))
@@ -368,7 +374,7 @@
/// take the most recent item out of a slot or place held item in a slot
/mob/living/carbon/human/proc/smart_equip_targeted(slot_type = ITEM_SLOT_BELT, slot_item_name = "belt")
- if(incapacitated())
+ if(incapacitated)
return
var/obj/item/thing = get_active_held_item()
var/obj/item/equipped_item = get_item_by_slot(slot_type)
diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
index 4c307107f153d..669b4f6b18dbc 100644
--- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm
+++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
@@ -11,10 +11,8 @@
siemens_coeff = 0.5 //They thrive on energy
payday_modifier = 1.0
inherent_traits = list(
- TRAIT_NO_UNDERWEAR,
TRAIT_MUTANT_COLORS,
TRAIT_FIXED_MUTANT_COLORS,
- TRAIT_FIXED_HAIRCOLOR,
TRAIT_AGENDER,
)
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
@@ -247,12 +245,9 @@
mutantbrain = /obj/item/organ/internal/brain/lustrous
changesource_flags = MIRROR_BADMIN | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN
inherent_traits = list(
- TRAIT_NO_UNDERWEAR,
TRAIT_MUTANT_COLORS,
TRAIT_FIXED_MUTANT_COLORS,
- TRAIT_FIXED_HAIRCOLOR,
TRAIT_AGENDER,
- TRAIT_TENACIOUS, // this doesn't work. tenacity is an element
TRAIT_NOBREATH,
TRAIT_RESISTHIGHPRESSURE,
TRAIT_RESISTLOWPRESSURE,
diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
index 44e8981c55315..0f2072b777353 100644
--- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
@@ -2,10 +2,6 @@
name = "Flyperson"
plural_form = "Flypeople"
id = SPECIES_FLYPERSON
- inherent_traits = list(
- TRAIT_TACKLING_FRAIL_ATTACKER,
- TRAIT_ANTENNAE,
- )
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG
meat = /obj/item/food/meat/slab/human/mutant/fly
mutanteyes = /obj/item/organ/internal/eyes/fly
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index 276d4a0fa7a5f..811ae45ea8cb3 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -412,7 +412,7 @@
return data
-/datum/action/innate/swap_body/ui_act(action, params)
+/datum/action/innate/swap_body/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
index 9370db5f5a8f8..65945467f5eb1 100644
--- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
@@ -5,7 +5,6 @@
id = SPECIES_LIZARD
inherent_traits = list(
TRAIT_MUTANT_COLORS,
- TRAIT_TACKLING_TAILED_DEFENDER,
)
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_REPTILE
body_markings = list(/datum/bodypart_overlay/simple/body_marking/lizard = "None")
diff --git a/code/modules/mob/living/carbon/human/species_types/monkeys.dm b/code/modules/mob/living/carbon/human/species_types/monkeys.dm
index 2c205c150c08a..1ca2979d3d6fc 100644
--- a/code/modules/mob/living/carbon/human/species_types/monkeys.dm
+++ b/code/modules/mob/living/carbon/human/species_types/monkeys.dm
@@ -12,7 +12,6 @@
meat = /obj/item/food/meat/slab/monkey
knife_butcher_results = list(/obj/item/food/meat/slab/monkey = 5, /obj/item/stack/sheet/animalhide/monkey = 1)
inherent_traits = list(
- TRAIT_GUN_NATURAL,
TRAIT_NO_AUGMENTS,
TRAIT_NO_BLOOD_OVERLAY,
TRAIT_NO_DNA_COPY,
@@ -128,7 +127,7 @@
/obj/item/organ/internal/brain/primate //Ook Ook
name = "Primate Brain"
desc = "This wad of meat is small, but has enlaged occipital lobes for spotting bananas."
- organ_traits = list(TRAIT_CAN_STRIP, TRAIT_PRIMITIVE) // No literacy or advanced tool usage.
+ organ_traits = list(TRAIT_CAN_STRIP, TRAIT_PRIMITIVE, TRAIT_GUN_NATURAL) // No literacy or advanced tool usage.
actions_types = list(/datum/action/item_action/organ_action/toggle_trip)
/// Will this monkey stumble if they are crossed by a simple mob or a carbon in combat mode? Toggable by monkeys with clients, and is messed automatically set to true by monkey AI.
var/tripping = TRUE
diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
index 0ebfb6a5f93ff..f9a17b310fae9 100644
--- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
@@ -2,10 +2,6 @@
name = "\improper Mothman"
plural_form = "Mothmen"
id = SPECIES_MOTH
- inherent_traits = list(
- TRAIT_TACKLING_WINGED_ATTACKER,
- TRAIT_ANTENNAE,
- )
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG
body_markings = list(/datum/bodypart_overlay/simple/body_marking/moth = "None")
mutant_organs = list(/obj/item/organ/external/wings/moth = "Plain", /obj/item/organ/external/antennae = "Plain")
diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
index 0cb0d9d85f084..8b347a22cca96 100644
--- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
@@ -27,7 +27,7 @@
heatmod = 1.5
payday_modifier = 1.0
breathid = GAS_PLASMA
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | ERT_SPAWN
species_cookie = /obj/item/reagent_containers/condiment/milk
outfit_important_for_life = /datum/outfit/plasmaman
species_language_holder = /datum/language_holder/skeleton
diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm
index 62030cf1eba59..a626cb47cc6d8 100644
--- a/code/modules/mob/living/emote.dm
+++ b/code/modules/mob/living/emote.dm
@@ -4,6 +4,16 @@
mob_type_allowed_typecache = /mob/living
mob_type_blacklist_typecache = list(/mob/living/brain)
+/datum/emote/living/taunt
+ key = "taunt"
+ key_third_person = "taunts"
+ message = "taunts!"
+ cooldown = 1.6 SECONDS //note when changing this- this is used by the matrix taunt to block projectiles.
+
+/datum/emote/living/taunt/run_emote(mob/living/user, params, type_override, intentional)
+ . = ..()
+ user.spin(TAUNT_EMOTE_DURATION, 0.1 SECONDS)
+
/datum/emote/living/blush
key = "blush"
key_third_person = "blushes"
@@ -225,20 +235,6 @@
key_third_person = "grimaces"
message = "grimaces."
-/datum/emote/living/jump
- key = "jump"
- key_third_person = "jumps"
- message = "jumps!"
- hands_use_check = TRUE
-
-/datum/emote/living/jump/run_emote(mob/living/user, params, type_override, intentional)
- . = ..()
- animate(user, pixel_y = user.pixel_y + 4, time = 0.1 SECONDS)
- animate(pixel_y = user.pixel_y - 4, time = 0.1 SECONDS)
-
-/datum/emote/living/jump/get_sound(mob/living/user)
- return 'sound/weapons/thudswoosh.ogg'
-
/datum/emote/living/kiss
key = "kiss"
key_third_person = "kisses"
@@ -248,6 +244,9 @@
. = ..()
var/kiss_type = /obj/item/hand_item/kisser
+ if(HAS_TRAIT(user, TRAIT_SYNDIE_KISS))
+ kiss_type = /obj/item/hand_item/kisser/syndie
+
if(HAS_TRAIT(user, TRAIT_KISS_OF_DEATH))
kiss_type = /obj/item/hand_item/kisser/death
diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm
index 4bf0407c4670a..0797f77c08210 100644
--- a/code/modules/mob/living/init_signals.dm
+++ b/code/modules/mob/living/init_signals.dm
@@ -40,6 +40,8 @@
RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_DEAF), PROC_REF(on_hearing_loss))
RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_DEAF), PROC_REF(on_hearing_regain))
+ RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_STASIS), PROC_REF(on_stasis_trait_gain))
+ RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_STASIS), PROC_REF(on_stasis_trait_loss))
RegisterSignals(src, list(
SIGNAL_ADDTRAIT(TRAIT_CRITICAL_CONDITION),
@@ -187,24 +189,36 @@
SIGNAL_HANDLER
add_traits(list(TRAIT_UI_BLOCKED, TRAIT_PULL_BLOCKED), TRAIT_INCAPACITATED)
update_appearance()
+ update_incapacitated()
/// Called when [TRAIT_INCAPACITATED] is removed from the mob.
/mob/living/proc/on_incapacitated_trait_loss(datum/source)
SIGNAL_HANDLER
remove_traits(list(TRAIT_UI_BLOCKED, TRAIT_PULL_BLOCKED), TRAIT_INCAPACITATED)
update_appearance()
-
+ update_incapacitated()
/// Called when [TRAIT_RESTRAINED] is added to the mob.
/mob/living/proc/on_restrained_trait_gain(datum/source)
SIGNAL_HANDLER
ADD_TRAIT(src, TRAIT_HANDS_BLOCKED, TRAIT_RESTRAINED)
+ update_incapacitated()
/// Called when [TRAIT_RESTRAINED] is removed from the mob.
/mob/living/proc/on_restrained_trait_loss(datum/source)
SIGNAL_HANDLER
REMOVE_TRAIT(src, TRAIT_HANDS_BLOCKED, TRAIT_RESTRAINED)
+ update_incapacitated()
+
+/// Called when [TRAIT_STASIS] is added to the mob
+/mob/living/proc/on_stasis_trait_gain(datum/source)
+ SIGNAL_HANDLER
+ update_incapacitated()
+/// Called when [TRAIT_STASIS] is removed from the mob
+/mob/living/proc/on_stasis_trait_loss(datum/source)
+ SIGNAL_HANDLER
+ update_incapacitated()
/**
* Called when traits that alter succumbing are added/removed.
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 70f268c2a454a..005eff4d542c8 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -70,7 +70,7 @@
damage_softening_multiplier *= potential_spine.athletics_boost_multiplier
// If you are incapped, you probably can't brace yourself
- var/can_help_themselves = !incapacitated(IGNORE_RESTRAINTS)
+ var/can_help_themselves = !INCAPACITATED_IGNORING(src, INCAPABLE_RESTRAINTS)
if(levels <= 1 && can_help_themselves)
var/obj/item/organ/external/wings/gliders = get_organ_by_type(/obj/item/organ/external/wings)
if(HAS_TRAIT(src, TRAIT_FREERUNNING) || gliders?.can_soften_fall()) // the power of parkour or wings allows falling short distances unscathed
@@ -516,7 +516,7 @@
//same as above
/mob/living/pointed(atom/A as mob|obj|turf in view(client.view, src))
- if(incapacitated())
+ if(incapacitated)
return FALSE
return ..()
@@ -545,31 +545,21 @@
investigate_log("has succumbed to death.", INVESTIGATE_DEATHS)
death()
-/**
- * Checks if a mob is incapacitated
- *
- * Normally being restrained, agressively grabbed, or in stasis counts as incapacitated
- * unless there is a flag being used to check if it's ignored
- *
- * args:
- * * flags (optional) bitflags that determine if special situations are exempt from being considered incapacitated
- *
- * bitflags: (see code/__DEFINES/status_effects.dm)
- * * IGNORE_RESTRAINTS - mob in a restraint (handcuffs) is not considered incapacitated
- * * IGNORE_STASIS - mob in stasis (stasis bed, etc.) is not considered incapacitated
- * * IGNORE_GRAB - mob that is agressively grabbed is not considered incapacitated
-**/
-/mob/living/incapacitated(flags)
+// Remember, anything that influences this needs to call update_incapacitated somehow when it changes
+// Most often best done in [code/modules/mob/living/init_signals.dm]
+/mob/living/build_incapacitated(flags)
+ // Holds a set of flags that describe how we are currently incapacitated
+ var/incap_status = NONE
if(HAS_TRAIT(src, TRAIT_INCAPACITATED))
- return TRUE
+ incap_status |= TRADITIONAL_INCAPACITATED
+ if(HAS_TRAIT(src, TRAIT_RESTRAINED))
+ incap_status |= INCAPABLE_RESTRAINTS
+ if(pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE)
+ incap_status |= INCAPABLE_GRAB
+ if(HAS_TRAIT(src, TRAIT_STASIS))
+ incap_status |= INCAPABLE_STASIS
- if(!(flags & IGNORE_RESTRAINTS) && HAS_TRAIT(src, TRAIT_RESTRAINED))
- return TRUE
- if(!(flags & IGNORE_GRAB) && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE)
- return TRUE
- if(!(flags & IGNORE_STASIS) && HAS_TRAIT(src, TRAIT_STASIS))
- return TRUE
- return FALSE
+ return incap_status
/mob/living/canUseStorage()
if (usable_hands <= 0)
@@ -1124,7 +1114,7 @@
/mob/living/proc/itch(obj/item/bodypart/target_part = null, damage = 0.5, can_scratch = TRUE, silent = FALSE)
if ((mob_biotypes & (MOB_ROBOTIC | MOB_SPIRIT)))
return FALSE
- var/will_scratch = can_scratch && !incapacitated()
+ var/will_scratch = can_scratch && !incapacitated
var/applied_damage = 0
if (will_scratch && damage)
applied_damage = apply_damage(damage, damagetype = BRUTE, def_zone = target_part)
@@ -1210,7 +1200,7 @@
/mob/living/resist_grab(moving_resist)
. = TRUE
//If we're in an aggressive grab or higher, we're lying down, we're vulnerable to grabs, or we're staggered and we have some amount of stamina loss, we must resist
- if(pulledby.grab_state || body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_GRABWEAKNESS) || get_timed_status_effect_duration(/datum/status_effect/staggered) && getStaminaLoss() >= 30)
+ if(pulledby.grab_state || body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_GRABWEAKNESS) || get_timed_status_effect_duration(/datum/status_effect/staggered) && (getFireLoss()*0.5 + getBruteLoss()*0.5) >= 40)
var/altered_grab_state = pulledby.grab_state
if((body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_GRABWEAKNESS) || get_timed_status_effect_duration(/datum/status_effect/staggered)) && pulledby.grab_state < GRAB_KILL) //If prone, resisting out of a grab is equivalent to 1 grab state higher. won't make the grab state exceed the normal max, however
altered_grab_state++
@@ -1354,11 +1344,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(incapacitated(ignore_flags))
+ if(INCAPACITATED_IGNORING(src, ignore_flags))
to_chat(src, span_warning("You are incapacitated at the moment!"))
return FALSE
@@ -1842,7 +1832,7 @@ GLOBAL_LIST_EMPTY(fire_appearances)
var/old_level_new_clients = (registered_z ? SSmobs.clients_by_zlevel[registered_z].len : null)
//No one is left after we're gone, shut off inactive ones
if(registered_z && old_level_new_clients == 0)
- for(var/datum/ai_controller/controller as anything in SSai_controllers.ai_controllers_by_zlevel[registered_z])
+ for(var/datum/ai_controller/controller as anything in GLOB.ai_controllers_by_zlevel[registered_z])
controller.set_ai_status(AI_STATUS_OFF)
if(new_z)
@@ -1853,7 +1843,7 @@ GLOBAL_LIST_EMPTY(fire_appearances)
SSmobs.clients_by_zlevel[new_z] += src
if(new_level_old_clients == 0) //No one was here before, wake up all the AIs.
- for (var/datum/ai_controller/controller as anything in SSai_controllers.ai_controllers_by_zlevel[new_z])
+ for (var/datum/ai_controller/controller as anything in GLOB.ai_controllers_by_zlevel[new_z])
//We don't set them directly on, for instances like AIs acting while dead and other cases that may exist in the future.
//This isn't a problem for AIs with a client since the client will prevent this from being called anyway.
controller.set_ai_status(controller.get_expected_ai_status())
@@ -2152,10 +2142,9 @@ GLOBAL_LIST_EMPTY(fire_appearances)
/mob/living/proc/can_look_up()
if(next_move > world.time)
return FALSE
- if(incapacitated(IGNORE_RESTRAINTS))
+ if(INCAPACITATED_IGNORING(src, INCAPABLE_RESTRAINTS))
return FALSE
return TRUE
-
/**
* look_up Changes the perspective of the mob to any openspace turf above the mob
*
@@ -2289,12 +2278,14 @@ GLOBAL_LIST_EMPTY(fire_appearances)
if(. >= UNCONSCIOUS)
REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT)
remove_traits(list(TRAIT_HANDS_BLOCKED, TRAIT_INCAPACITATED, TRAIT_FLOORED, TRAIT_CRITICAL_CONDITION), STAT_TRAIT)
+ log_combat(src, src, "regained consciousness")
if(SOFT_CRIT)
if(pulledby)
ADD_TRAIT(src, TRAIT_IMMOBILIZED, PULLED_WHILE_SOFTCRIT_TRAIT) //adding trait sources should come before removing to avoid unnecessary updates
if(. >= UNCONSCIOUS)
REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT)
ADD_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
+ log_combat(src, src, "entered soft crit")
if(UNCONSCIOUS)
if(. != HARD_CRIT)
become_blind(UNCONSCIOUS_TRAIT)
@@ -2302,14 +2293,17 @@ GLOBAL_LIST_EMPTY(fire_appearances)
ADD_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
else
REMOVE_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
+ log_combat(src, src, "lost consciousness")
if(HARD_CRIT)
if(. != UNCONSCIOUS)
become_blind(UNCONSCIOUS_TRAIT)
ADD_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
+ log_combat(src, src, "entered hard crit")
if(DEAD)
REMOVE_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
remove_from_alive_mob_list()
add_to_dead_mob_list()
+ log_combat(src, src, "died")
if(!can_hear())
stop_sound_channel(CHANNEL_AMBIENCE)
refresh_looping_ambience()
@@ -2346,6 +2340,7 @@ GLOBAL_LIST_EMPTY(fire_appearances)
/mob/living/set_pulledby(new_pulledby)
. = ..()
+ update_incapacitated()
if(. == FALSE) //null is a valid value here, we only want to return if FALSE is explicitly passed.
return
if(pulledby)
@@ -2819,3 +2814,25 @@ GLOBAL_LIST_EMPTY(fire_appearances)
return "[span_notice("You'd estimate [p_their()] fitness level at about...")] [span_boldwarning("What?!? [our_fitness_level]???")]"
return span_notice("You'd estimate [p_their()] fitness level at about [our_fitness_level]. [comparative_fitness <= 0.33 ? "Pathetic." : ""]")
+
+///Performs the aftereffects of blocking a projectile.
+/mob/living/proc/block_projectile_effects()
+ var/static/list/icon/blocking_overlay
+ if(isnull(blocking_overlay))
+ blocking_overlay = list(
+ mutable_appearance('icons/mob/effects/blocking.dmi', "wow"),
+ mutable_appearance('icons/mob/effects/blocking.dmi', "nice"),
+ mutable_appearance('icons/mob/effects/blocking.dmi', "good"),
+ )
+ ADD_TRAIT(src, TRAIT_BLOCKING_PROJECTILES, BLOCKING_TRAIT)
+ var/icon/selected_overlay = pick(blocking_overlay)
+ add_overlay(selected_overlay)
+ playsound(src, 'sound/weapons/fwoosh.ogg', 90, FALSE, frequency = 0.7)
+ update_transform(1.25)
+ addtimer(CALLBACK(src, PROC_REF(end_block_effects), selected_overlay), 0.6 SECONDS)
+
+///Remoevs the effects of blocking a projectile and allows the user to block another.
+/mob/living/proc/end_block_effects(selected_overlay)
+ REMOVE_TRAIT(src, TRAIT_BLOCKING_PROJECTILES, BLOCKING_TRAIT)
+ cut_overlay(selected_overlay)
+ update_transform(0.8)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 99538836476d6..7e724d8862117 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -269,6 +269,7 @@
return FALSE
grippedby(user)
+ update_incapacitated()
//proc to upgrade a simple pull into a more aggressive grab.
/mob/living/proc/grippedby(mob/living/user, instant = FALSE)
diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm
index 62c290217fd3f..4522b6ca69a52 100644
--- a/code/modules/mob/living/living_movement.dm
+++ b/code/modules/mob/living/living_movement.dm
@@ -124,7 +124,7 @@
return ..()
/mob/living/can_z_move(direction, turf/start, turf/destination, z_move_flags = ZMOVE_FLIGHT_FLAGS, mob/living/rider)
- if(z_move_flags & ZMOVE_INCAPACITATED_CHECKS && incapacitated())
+ if(z_move_flags & ZMOVE_INCAPACITATED_CHECKS && incapacitated)
if(z_move_flags & ZMOVE_FEEDBACK)
to_chat(rider || src, span_warning("[rider ? src : "You"] can't do that right now!"))
return FALSE
diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm
index 459410d0a026a..c5f41678732cf 100644
--- a/code/modules/mob/living/living_say.dm
+++ b/code/modules/mob/living/living_say.dm
@@ -28,6 +28,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
// Misc
RADIO_KEY_AI_PRIVATE = RADIO_CHANNEL_AI_PRIVATE, // AI Upload channel
+ RADIO_KEY_ENTERTAINMENT = RADIO_CHANNEL_ENTERTAINMENT, // Entertainment monitors
//kinda localization -- rastaf0
@@ -56,7 +57,8 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
"в" = MODE_KEY_DEADMIN,
// Misc
- "щ" = RADIO_CHANNEL_AI_PRIVATE
+ "щ" = RADIO_CHANNEL_AI_PRIVATE,
+ "з" = RADIO_CHANNEL_ENTERTAINMENT,
))
/**
diff --git a/code/modules/mob/living/living_update_icons.dm b/code/modules/mob/living/living_update_icons.dm
index a9e1a136800b0..4e8b809e047f9 100644
--- a/code/modules/mob/living/living_update_icons.dm
+++ b/code/modules/mob/living/living_update_icons.dm
@@ -58,7 +58,8 @@
if(!changed) //Nothing has been changed, nothing has to be done.
return
- SEND_SIGNAL(src, COMSIG_PAUSE_FLOATING_ANIM, 0.3 SECONDS)
+ ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, UPDATE_TRANSFORM_TRAIT)
+ addtimer(TRAIT_CALLBACK_REMOVE(src, TRAIT_NO_FLOATING_ANIM, UPDATE_TRANSFORM_TRAIT), 0.3 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE)
//if true, we want to avoid any animation time, it'll tween and not rotate at all otherwise.
var/is_opposite_angle = SIMPLIFY_DEGREES(lying_angle+180) == lying_prev
animate(src, transform = ntransform, time = is_opposite_angle ? 0 : UPDATE_TRANSFORM_ANIMATION_TIME, pixel_y = final_pixel_y, dir = final_dir, easing = (EASE_IN|EASE_OUT))
diff --git a/code/modules/mob/living/navigation.dm b/code/modules/mob/living/navigation.dm
index 3096efb3a7c47..a18342c445616 100644
--- a/code/modules/mob/living/navigation.dm
+++ b/code/modules/mob/living/navigation.dm
@@ -12,7 +12,7 @@
set name = "Navigate"
set category = "IC"
- if(incapacitated())
+ if(incapacitated)
return
if(length(client.navigation_images))
addtimer(CALLBACK(src, PROC_REF(cut_navigation)), world.tick_lag)
@@ -46,7 +46,7 @@
if(isnull(navigate_target))
return
- if(incapacitated())
+ if(incapacitated)
return
COOLDOWN_START(src, navigate_cooldown, 15 SECONDS)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 7e0cd4e5ef3e7..92c853ba72c4c 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -181,7 +181,7 @@
RegisterSignal(ai_tracking_tool, COMSIG_TRACKABLE_TRACKING_TARGET, PROC_REF(on_track_target))
RegisterSignal(ai_tracking_tool, COMSIG_TRACKABLE_GLIDE_CHANGED, PROC_REF(tracked_glidesize_changed))
- add_traits(list(TRAIT_PULL_BLOCKED, TRAIT_HANDS_BLOCKED), ROUNDSTART_TRAIT)
+ add_traits(list(TRAIT_PULL_BLOCKED, TRAIT_AI_ACCESS, TRAIT_HANDS_BLOCKED), INNATE_TRAIT)
alert_control = new(src, list(ALARM_ATMOS, ALARM_FIRE, ALARM_POWER, ALARM_CAMERA, ALARM_BURGLAR, ALARM_MOTION), list(z), camera_view = TRUE)
RegisterSignal(alert_control.listener, COMSIG_ALARM_LISTENER_TRIGGERED, PROC_REF(alarm_triggered))
@@ -288,7 +288,7 @@
/mob/living/silicon/ai/verb/pick_icon()
set category = "AI Commands"
set name = "Set AI Core Display"
- if(incapacitated())
+ if(incapacitated)
return
icon = initial(icon)
icon_state = "ai"
@@ -306,7 +306,7 @@
view_core()
var/ai_core_icon = show_radial_menu(src, src , iconstates, radius = 42)
- if(!ai_core_icon || incapacitated())
+ if(!ai_core_icon || incapacitated)
return
display_icon_override = ai_core_icon
@@ -347,7 +347,7 @@
var/reason = tgui_input_text(src, "What is the nature of your emergency? ([CALL_SHUTTLE_REASON_LENGTH] characters required.)", "Confirm Shuttle Call")
- if(incapacitated())
+ if(incapacitated)
return
if(trim(reason))
@@ -409,7 +409,7 @@
return // stop
if(stat == DEAD)
return
- if(incapacitated())
+ if(incapacitated)
if(battery < 50)
to_chat(src, span_warning("Insufficient backup power!"))
return
@@ -481,14 +481,14 @@
if(usr != src)
return
- if(href_list["emergencyAPC"]) //This check comes before incapacitated() because the only time it would be useful is when we have no power.
+ if(href_list["emergencyAPC"]) //This check comes before incapacitated because the only time it would be useful is when we have no power.
if(!apc_override)
to_chat(src, span_notice("APC backdoor is no longer available."))
return
apc_override.ui_interact(src)
return
- if(incapacitated())
+ if(incapacitated)
return
if (href_list["switchcamera"])
@@ -638,7 +638,7 @@
ai_tracking_tool.reset_tracking()
var/cameralist[0]
- if(incapacitated())
+ if(incapacitated)
return
var/mob/living/silicon/ai/U = usr
@@ -680,7 +680,7 @@
set desc = "Change the default hologram available to AI to something else."
set category = "AI Commands"
- if(incapacitated())
+ if(incapacitated)
return
var/input
switch(tgui_input_list(usr, "Would you like to select a hologram based on a custom character, an animal, or switch to a unique avatar?", "Customize", list("Custom Character","Unique","Animal")))
@@ -830,7 +830,7 @@
set desc = "Allows you to change settings of your radio."
set category = "AI Commands"
- if(incapacitated())
+ if(incapacitated)
return
to_chat(src, "Accessing Subspace Transceiver control...")
@@ -846,7 +846,7 @@
set desc = "Modify the default radio setting for your automatic announcements."
set category = "AI Commands"
- if(incapacitated())
+ if(incapacitated)
return
set_autosay()
@@ -1046,7 +1046,7 @@
set category = "AI Commands"
set name = "Deploy to Shell"
- if(incapacitated())
+ if(incapacitated)
return
if(control_disabled)
to_chat(src, span_warning("Wireless networking module is offline."))
diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm
index 0c5eb6ec164b2..55a00a6ffc0bc 100644
--- a/code/modules/mob/living/silicon/ai/ai_defense.dm
+++ b/code/modules/mob/living/silicon/ai/ai_defense.dm
@@ -63,7 +63,7 @@
. = ..()
if(user.combat_mode)
return
- if(stat != DEAD && !incapacitated() && (client || deployed_shell?.client))
+ if(stat != DEAD && !incapacitated && (client || deployed_shell?.client))
// alive and well AIs control their floor bolts
balloon_alert(user, "the AI's bolt motors resist.")
return ITEM_INTERACT_SUCCESS
diff --git a/code/modules/mob/living/silicon/ai/ai_portrait_picker.dm b/code/modules/mob/living/silicon/ai/ai_portrait_picker.dm
index 2d099ea8bb00a..5415b7b1931b7 100644
--- a/code/modules/mob/living/silicon/ai/ai_portrait_picker.dm
+++ b/code/modules/mob/living/silicon/ai/ai_portrait_picker.dm
@@ -47,7 +47,7 @@
data["search_mode"] = search_mode == PAINTINGS_FILTER_SEARCH_TITLE ? "Title" : "Author"
return data
-/datum/portrait_picker/ui_act(action, params)
+/datum/portrait_picker/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/mob/living/silicon/ai/ai_say.dm b/code/modules/mob/living/silicon/ai/ai_say.dm
index 48b3cdc437350..a71074f9a014c 100644
--- a/code/modules/mob/living/silicon/ai/ai_say.dm
+++ b/code/modules/mob/living/silicon/ai/ai_say.dm
@@ -18,12 +18,23 @@
return ..()
/mob/living/silicon/ai/radio(message, list/message_mods = list(), list/spans, language)
- if(incapacitated())
+ if(incapacitated)
return FALSE
if(!radio_enabled) //AI cannot speak if radio is disabled (via intellicard) or depowered.
to_chat(src, span_danger("Your radio transmitter is offline!"))
return FALSE
- ..()
+ . = ..()
+ if(.)
+ return .
+ if(message_mods[MODE_HEADSET])
+ if(radio)
+ radio.talk_into(src, message, , spans, language, message_mods)
+ return NOPASS
+ else if(message_mods[RADIO_EXTENSION] in GLOB.radiochannels)
+ if(radio)
+ radio.talk_into(src, message, message_mods[RADIO_EXTENSION], spans, language, message_mods)
+ return NOPASS
+ return FALSE
//For holopads only. Usable by AI.
/mob/living/silicon/ai/proc/holopad_talk(message, language)
@@ -56,7 +67,7 @@
set desc = "Display a list of vocal words to announce to the crew."
set category = "AI Commands"
- if(incapacitated())
+ if(incapacitated)
return
var/dat = {"
@@ -95,7 +106,7 @@
last_announcement = message
- if(incapacitated())
+ if(incapacitated)
return
if(control_disabled)
diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm
index 98a2e629776b1..32382b663398b 100644
--- a/code/modules/mob/living/silicon/ai/freelook/eye.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm
@@ -235,7 +235,7 @@
set category = "AI Commands"
set name = "Toggle Camera Acceleration"
- if(incapacitated())
+ if(incapacitated)
return
acceleration = !acceleration
to_chat(usr, "Camera acceleration has been toggled [acceleration ? "on" : "off"].")
diff --git a/code/modules/mob/living/silicon/ai/robot_control.dm b/code/modules/mob/living/silicon/ai/robot_control.dm
index d963fc77be62f..a04d1c3af75c4 100644
--- a/code/modules/mob/living/silicon/ai/robot_control.dm
+++ b/code/modules/mob/living/silicon/ai/robot_control.dm
@@ -7,7 +7,7 @@
owner = new_owner
/datum/robot_control/proc/is_interactable(mob/user)
- if(user != owner || owner.incapacitated())
+ if(user != owner || owner.incapacitated)
return FALSE
if(owner.control_disabled)
to_chat(user, span_warning("Wireless control is disabled."))
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 4871370d16c3d..2f670c5fbe21b 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -389,7 +389,7 @@
return ..()
/mob/living/silicon/robot/execute_mode()
- if(incapacitated())
+ if(incapacitated)
return
var/obj/item/W = get_active_held_item()
if(W)
@@ -504,14 +504,19 @@
lampButton?.update_appearance()
update_icons()
+///Completely deconstructs the borg, dropping the MMI/posibrain, removing applied upgrades and stripping the exoskeleton of all limbs,
+///while also burning out the flashes and prying out the cabling and the cell used in construction
/mob/living/silicon/robot/proc/cyborg_deconstruct()
SEND_SIGNAL(src, COMSIG_BORG_SAFE_DECONSTRUCT)
if(shell)
undeploy()
var/turf/drop_to = drop_location()
- if (robot_suit)
+ //remove installed upgrades
+ for(var/obj/item/borg/upgrade/upgrade_to_remove in upgrades)
+ upgrade_to_remove.forceMove(drop_to)
+ if(robot_suit)
robot_suit.drop_all_parts(drop_to)
-
+ robot_suit.forceMove(drop_to)
else
new /obj/item/robot_suit(drop_to)
new /obj/item/bodypart/leg/left/robot(drop_to)
@@ -874,7 +879,7 @@
lawupdate = TRUE
lawsync()
if(radio && AI.radio) //AI keeps all channels, including Syndie if it is a Traitor
- if(AI.radio.syndie)
+ if((AI.radio.special_channels & RADIO_SPECIAL_SYNDIE))
radio.make_syndie()
radio.subspace_transmission = TRUE
radio.channels = AI.radio.channels
@@ -936,7 +941,7 @@
M.visible_message(span_warning("[M] really can't seem to mount [src]..."))
return
- if(stat || incapacitated())
+ if(stat || incapacitated)
return
if(model && !model.allow_riding)
M.visible_message(span_boldwarning("Unfortunately, [M] just can't seem to hold onto [src]!"))
diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm
index 015f23182dca3..7aabdafaa4825 100644
--- a/code/modules/mob/living/silicon/robot/robot_model.dm
+++ b/code/modules/mob/living/silicon/robot/robot_model.dm
@@ -327,7 +327,7 @@
/obj/item/robot_model/proc/check_menu(mob/living/silicon/robot/user, obj/item/robot_model/old_model)
if(!istype(user))
return FALSE
- if(user.incapacitated())
+ if(user.incapacitated)
return FALSE
if(user.model != old_model)
return FALSE
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index e41cd2157080f..507008caf943c 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -1,6 +1,5 @@
/mob/living/silicon
gender = NEUTER
- has_unlimited_silicon_privilege = TRUE
verb_say = "states"
verb_ask = "queries"
verb_exclaim = "declares"
@@ -75,6 +74,9 @@
TRAIT_NOFIRE_SPREAD,
TRAIT_BRAWLING_KNOCKDOWN_BLOCKED,
TRAIT_FENCE_CLIMBER,
+ TRAIT_SILICON_ACCESS,
+ TRAIT_REAGENT_SCANNER,
+ TRAIT_UNOBSERVANT,
)
add_traits(traits_to_apply, ROUNDSTART_TRAIT)
@@ -400,7 +402,7 @@
silicon_hud.show_to(src)
/mob/living/silicon/proc/toggle_sensors()
- if(incapacitated())
+ if(incapacitated)
return
sensors_on = !sensors_on
if (!sensors_on)
diff --git a/code/modules/mob/living/silicon/silicon_say.dm b/code/modules/mob/living/silicon/silicon_say.dm
index 9310211aa0e6d..824bba98dc070 100644
--- a/code/modules/mob/living/silicon/silicon_say.dm
+++ b/code/modules/mob/living/silicon/silicon_say.dm
@@ -82,10 +82,10 @@
if(message_mods[MODE_HEADSET])
if(radio)
radio.talk_into(src, message, , spans, language, message_mods)
- return REDUCE_RANGE
+ return NOPASS
else if(message_mods[RADIO_EXTENSION] in GLOB.radiochannels)
if(radio)
radio.talk_into(src, message, message_mods[RADIO_EXTENSION], spans, language, message_mods)
- return ITALICS | REDUCE_RANGE
+ return NOPASS
return FALSE
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index e2bb112e1565e..ee7cd1357989e 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -12,7 +12,6 @@
hud_possible = list(DIAG_STAT_HUD, DIAG_BOT_HUD, DIAG_HUD, DIAG_BATT_HUD, DIAG_PATH_HUD = HUD_LIST_LIST)
maxbodytemp = INFINITY
minbodytemp = 0
- has_unlimited_silicon_privilege = TRUE
sentience_type = SENTIENCE_ARTIFICIAL
status_flags = NONE //no default canpush
pass_flags = PASSFLAPS
@@ -163,6 +162,7 @@
/mob/living/simple_animal/bot/Initialize(mapload)
. = ..()
+ add_traits(list(TRAIT_SILICON_ACCESS, TRAIT_REAGENT_SCANNER, TRAIT_UNOBSERVANT), INNATE_TRAIT)
GLOB.bots_list += src
path_hud = new /datum/atom_hud/data/bot_path/private()
@@ -378,9 +378,9 @@
if(HAS_TRAIT(src, TRAIT_COMMISSIONED) && COOLDOWN_FINISHED(src, next_salute_check))
COOLDOWN_START(src, next_salute_check, BOT_COMMISSIONED_SALUTE_DELAY)
- for(var/mob/living/simple_animal/bot/B in view(5, src))
- if(!HAS_TRAIT(B, TRAIT_COMMISSIONED) && B.bot_mode_flags & BOT_MODE_ON)
- manual_emote("performs an elaborate salute for [src]!")
+ for(var/mob/living/simple_animal/bot/nearby_bot in view(5, src))
+ if(!HAS_TRAIT(nearby_bot, TRAIT_COMMISSIONED) && nearby_bot.bot_mode_flags & BOT_MODE_ON)
+ manual_emote("performs an elaborate salute for [nearby_bot]!")
break
switch(mode) //High-priority overrides are processed first. Bots can do nothing else while under direct command.
@@ -976,13 +976,13 @@ Pass a positive integer as an argument to override a bot's default speed.
return data
// Actions received from TGUI
-/mob/living/simple_animal/bot/ui_act(action, params)
+/mob/living/simple_animal/bot/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
- var/mob/user = usr
+ var/mob/user = ui.user
if(!allowed(user))
- to_chat(usr, span_warning("Access denied."))
+ to_chat(user, span_warning("Access denied."))
return
if(action == "lock")
@@ -1002,38 +1002,38 @@ Pass a positive integer as an argument to override a bot's default speed.
if("airplane")
bot_mode_flags ^= BOT_MODE_REMOTE_ENABLED
if("hack")
- if(!HAS_SILICON_ACCESS(usr))
+ if(!HAS_SILICON_ACCESS(user))
return
if(!(bot_cover_flags & BOT_COVER_EMAGGED))
bot_cover_flags |= (BOT_COVER_EMAGGED|BOT_COVER_HACKED|BOT_COVER_LOCKED)
- to_chat(usr, span_warning("You overload [src]'s [hackables]."))
- message_admins("Safety lock of [ADMIN_LOOKUPFLW(src)] was disabled by [ADMIN_LOOKUPFLW(usr)] in [ADMIN_VERBOSEJMP(src)]")
- usr.log_message("disabled safety lock of [src]", LOG_GAME)
+ to_chat(user, span_warning("You overload [src]'s [hackables]."))
+ message_admins("Safety lock of [ADMIN_LOOKUPFLW(src)] was disabled by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(src)]")
+ user.log_message("disabled safety lock of [src]", LOG_GAME)
bot_reset()
to_chat(src, span_userdanger("(#$*#$^^( OVERRIDE DETECTED"))
to_chat(src, span_boldnotice(get_emagged_message()))
return
if(!(bot_cover_flags & BOT_COVER_HACKED))
- to_chat(usr, span_boldannounce("You fail to repair [src]'s [hackables]."))
+ to_chat(user, span_boldannounce("You fail to repair [src]'s [hackables]."))
return
bot_cover_flags &= ~(BOT_COVER_EMAGGED|BOT_COVER_HACKED)
- to_chat(usr, span_notice("You reset the [src]'s [hackables]."))
- usr.log_message("re-enabled safety lock of [src]", LOG_GAME)
+ to_chat(user, span_notice("You reset the [src]'s [hackables]."))
+ user.log_message("re-enabled safety lock of [src]", LOG_GAME)
bot_reset()
to_chat(src, span_userdanger("Software restored to standard."))
to_chat(src, span_boldnotice(possessed_message))
if("eject_pai")
if(!paicard)
return
- to_chat(usr, span_notice("You eject [paicard] from [initial(src.name)]."))
- ejectpai(usr)
+ to_chat(user, span_notice("You eject [paicard] from [initial(src.name)]."))
+ ejectpai(user)
if("toggle_personality")
if (can_be_possessed)
- disable_possession(usr)
+ disable_possession(user)
else
- enable_possession(usr)
+ enable_possession(user)
if("rename")
- rename(usr)
+ rename(user)
/mob/living/simple_animal/bot/update_icon_state()
icon_state = "[isnull(base_icon_state) ? initial(icon_state) : base_icon_state][get_bot_flag(bot_mode_flags, BOT_MODE_ON)]"
diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
index 6c0cd6d16ab55..bbd45e12a2733 100644
--- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
@@ -42,7 +42,7 @@
var/list/targets = list()
for(var/mob/living/carbon/nearby_carbon in view(7, src)) //Let's find us a target
var/threatlevel = 0
- if(nearby_carbon.incapacitated())
+ if(nearby_carbon.incapacitated)
continue
threatlevel = nearby_carbon.assess_threat(judgement_criteria)
if(threatlevel < THREAT_ASSESS_DANGEROUS)
diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm
index 4bedf0d3d621b..c670f6561c86b 100644
--- a/code/modules/mob/living/simple_animal/bot/floorbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm
@@ -142,7 +142,8 @@
// Actions received from TGUI
/mob/living/simple_animal/bot/floorbot/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
- if(. || (bot_cover_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(usr)))
+ var/mob/user = ui.user
+ if(. || (bot_cover_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(user)))
return
switch(action)
@@ -160,7 +161,7 @@
if(tilestack)
tilestack.forceMove(drop_location())
if("line_mode")
- var/setdir = tgui_input_list(usr, "Select construction direction", "Direction", list("north", "east", "south", "west", "disable"))
+ var/setdir = tgui_input_list(user, "Select construction direction", "Direction", list("north", "east", "south", "west", "disable"))
if(isnull(setdir) || QDELETED(ui) || ui.status != UI_INTERACTIVE)
return
switch(setdir)
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index f3194e88b1862..dbfe987cac57a 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -286,29 +286,30 @@
data["paiInserted"] = !!paicard
return data
-/mob/living/simple_animal/bot/mulebot/ui_act(action, params)
+/mob/living/simple_animal/bot/mulebot/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
- if(. || (bot_cover_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(usr)))
+ var/mob/user = ui.user
+ if(. || (bot_cover_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(user)))
return
switch(action)
if("lock")
- if(HAS_SILICON_ACCESS(usr))
+ if(HAS_SILICON_ACCESS(user))
bot_cover_flags ^= BOT_COVER_LOCKED
return TRUE
if("on")
if(bot_mode_flags & BOT_MODE_ON)
turn_off()
else if(bot_cover_flags & BOT_COVER_MAINTS_OPEN)
- to_chat(usr, span_warning("[name]'s maintenance panel is open!"))
+ to_chat(user, span_warning("[name]'s maintenance panel is open!"))
return
else if(cell)
if(!turn_on())
- to_chat(usr, span_warning("You can't switch on [src]!"))
+ to_chat(user, span_warning("You can't switch on [src]!"))
return
return TRUE
else
- bot_control(action, usr, params) // Kill this later. // Kill PDAs in general please
+ bot_control(action, user, params) // Kill this later. // Kill PDAs in general please
return TRUE
/mob/living/simple_animal/bot/mulebot/bot_control(command, mob/user, list/params = list(), pda = FALSE)
@@ -711,7 +712,7 @@
// player on mulebot attempted to move
/mob/living/simple_animal/bot/mulebot/relaymove(mob/living/user, direction)
- if(user.incapacitated())
+ if(user.incapacitated)
return
if(load == user)
unload(0)
@@ -805,7 +806,7 @@
/mob/living/simple_animal/bot/mulebot/paranormal/mouse_drop_receive(atom/movable/AM, mob/user, params)
var/mob/living/L = user
- if(user.incapacitated() || (istype(L) && L.body_position == LYING_DOWN))
+ if(user.incapacitated || (istype(L) && L.body_position == LYING_DOWN))
return
if(!istype(AM) || iscameramob(AM) || istype(AM, /obj/effect/dummy/phased_mob)) //allows ghosts!
diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm
index 7448f6d34bc79..ea09441687202 100644
--- a/code/modules/mob/living/simple_animal/bot/secbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/secbot.dm
@@ -202,9 +202,10 @@
return data
// Actions received from TGUI
-/mob/living/simple_animal/bot/secbot/ui_act(action, params)
+/mob/living/simple_animal/bot/secbot/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
- if(. || (bot_cover_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(usr)))
+ var/mob/user = ui.user
+ if(. || (bot_cover_flags & BOT_COVER_LOCKED && !HAS_SILICON_ACCESS(user)))
return
switch(action)
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 507563e7c207c..0803d96a706b9 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -320,7 +320,7 @@
/mob/living/simple_animal/hostile/proc/CheckAndAttack()
var/atom/target_from = GET_TARGETS_FROM(src)
- if(target && isturf(target_from.loc) && target.Adjacent(target_from) && !incapacitated())
+ if(target && isturf(target_from.loc) && target.Adjacent(target_from) && !incapacitated)
AttackingTarget(target)
/mob/living/simple_animal/hostile/proc/MoveToTarget(list/possible_targets)//Step 5, handle movement between us and our target
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm
index 31d2e62fba7dc..231977a323954 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm
@@ -64,7 +64,7 @@
if(gps_name && true_spawn)
AddComponent(/datum/component/gps, gps_name)
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
- add_traits(list(TRAIT_NO_TELEPORT, TRAIT_MARTIAL_ARTS_IMMUNE), MEGAFAUNA_TRAIT)
+ add_traits(list(TRAIT_NO_TELEPORT), MEGAFAUNA_TRAIT)
grant_actions_by_list(attack_action_types)
/mob/living/simple_animal/hostile/megafauna/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
index 193545d9985fa..935ed7a7215b0 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
@@ -27,7 +27,7 @@ Difficulty: Medium
icon_living = "miner"
icon = 'icons/mob/simple/broadMobs.dmi'
health_doll_icon = "miner"
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
+ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_SPECIAL
light_color = COLOR_LIGHT_GRAYISH_RED
speak_emote = list("roars")
speed = 3
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
index 2af3018bed306..448896e3700de 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
@@ -18,7 +18,7 @@ Difficulty: Extremely Hard
attack_verb_continuous = "pummels"
attack_verb_simple = "pummels"
attack_sound = 'sound/weapons/sonic_jackhammer.ogg'
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
+ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_SPECIAL
light_color = COLOR_LIGHT_GRAYISH_RED
movement_type = GROUND
weather_immunities = list(TRAIT_SNOWSTORM_IMMUNE)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
index 4156d9678bca0..6bf09bc5a490e 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
@@ -432,7 +432,7 @@ Difficulty: Hard
/mob/living/simple_animal/hostile/megafauna/hierophant/celebrate_kill(mob/living/L)
visible_message(span_hierophant_warning("\"[pick(kill_phrases)]\""))
- visible_message(span_hierophant_warning("[src] obliterates [L]!"),span_userdanger("You absorb [L]'s life force, restoring your health!"))
+ visible_message(span_hierophant_warning("[src] absorbs [L]'s life force!"),span_userdanger("You absorb [L]'s life force, restoring your health!"))
/mob/living/simple_animal/hostile/megafauna/hierophant/CanAttack(atom/the_target)
. = ..()
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 25d0e566b15dd..9d5041fe870a4 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -495,7 +495,7 @@
//ANIMAL RIDING
/mob/living/simple_animal/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE)
- if(user.incapacitated())
+ if(user.incapacitated)
return
for(var/atom/movable/A in get_turf(src))
if(A != src && A != M && A.density)
@@ -521,7 +521,7 @@
return
/mob/living/simple_animal/relaymove(mob/living/user, direction)
- if(user.incapacitated())
+ if(user.incapacitated)
return
return relaydrive(user, direction)
diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm
index d017a2acca1be..17e929ba42290 100644
--- a/code/modules/mob/login.dm
+++ b/code/modules/mob/login.dm
@@ -91,11 +91,9 @@
sync_mind()
//Reload alternate appearances
- for(var/v in GLOB.active_alternate_appearances)
- if(!v)
- continue
- var/datum/atom_hud/alternate_appearance/AA = v
- AA.onNewMob(src)
+ for(var/datum/atom_hud/alternate_appearance/alt_hud as anything in GLOB.active_alternate_appearances)
+ if(!alt_hud.apply_to_new_mob(src))
+ alt_hud.hide_from(src, absolute = TRUE)
update_client_colour()
update_mouse_pointer()
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index c90c81b6ce43d..f321a8396a379 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -83,13 +83,12 @@
add_to_dead_mob_list()
else
add_to_alive_mob_list()
+ update_incapacitated()
set_focus(src)
prepare_huds()
- for(var/v in GLOB.active_alternate_appearances)
- if(!v)
- continue
- var/datum/atom_hud/alternate_appearance/AA = v
- AA.onNewMob(src)
+ for(var/datum/atom_hud/alternate_appearance/alt_hud as anything in GLOB.active_alternate_appearances)
+ alt_hud.apply_to_new_mob(src)
+
set_nutrition(rand(NUTRITION_LEVEL_START_MIN, NUTRITION_LEVEL_START_MAX))
. = ..()
setup_hud_traits()
@@ -414,9 +413,21 @@
return null
-///Is the mob incapacitated
-/mob/proc/incapacitated(flags)
- return
+/// Called whenever anything that modifes incapacitated is ran, updates it and sends a signal if it changes
+/// Returns TRUE if anything changed, FALSE otherwise
+/mob/proc/update_incapacitated()
+ SIGNAL_HANDLER
+ var/old_incap = incapacitated
+ incapacitated = build_incapacitated()
+ if(old_incap == incapacitated)
+ return FALSE
+
+ SEND_SIGNAL(src, COMSIG_MOB_INCAPACITATE_CHANGED, old_incap, incapacitated)
+ return TRUE
+
+/// Returns an updated incapacitated bitflag. If a flag is set it means we're incapacitated in that case
+/mob/proc/build_incapacitated()
+ return NONE
/**
* This proc is called whenever someone clicks an inventory ui slot.
@@ -543,7 +554,7 @@
/mob/living/blind_examine_check(atom/examined_thing)
//need to be next to something and awake
- if(!Adjacent(examined_thing) || incapacitated())
+ if(!Adjacent(examined_thing) || incapacitated)
to_chat(src, span_warning("Something is there, but you can't see it!"))
return FALSE
@@ -702,7 +713,7 @@
if(ismecha(loc))
return
- if(incapacitated())
+ if(incapacitated)
return
var/obj/item/I = get_active_held_item()
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 2206efd0e13ce..24e95cad60800 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -66,6 +66,20 @@
/// Whether a mob is alive or dead. TODO: Move this to living - Nodrak (2019, still here)
var/stat = CONSCIOUS
+ /**
+ * Whether and how a mob is incapacitated
+ *
+ * Normally being restrained, agressively grabbed, or in stasis counts as incapacitated
+ * unless there is a flag being used to check if it's ignored
+ *
+ * * bitflags: (see code/__DEFINES/status_effects.dm)
+ * * INCAPABLE_RESTRAINTS - if our mob is in a restraint (handcuffs)
+ * * INCAPABLE_STASIS - if our mob is in stasis (stasis bed, etc.)
+ * * INCAPABLE_GRAB - if our mob is being agressively grabbed
+ *
+ **/
+ VAR_FINAL/incapacitated = NONE
+
/* A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob.
A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such.
The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticable for other mobs).
@@ -137,9 +151,6 @@
/// bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc)
var/status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH
- /// Can they interact with station electronics
- var/has_unlimited_silicon_privilege = FALSE
-
///Calls relay_move() to whatever this is set to when the mob tries to move
var/atom/movable/remote_control
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index a6a1c58c7eddf..a3fceb0493e8c 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -345,12 +345,14 @@
return
return TRUE
-///Is the passed in mob an admin ghost WITH AI INTERACT enabled
+///Returns TRUE/FALSE on whether the mob is an Admin Ghost AI.
+///This requires this snowflake check because AI interact gives the access to the mob's client, rather
+///than the mob like everyone else, and we keep it that way so they can't accidentally give someone Admin AI access.
/proc/isAdminGhostAI(mob/user)
if(!isAdminObserver(user))
- return
- if(!user.client.AI_Interact) // Do they have it enabled?
- return
+ return FALSE
+ if(!HAS_TRAIT_FROM(user.client, TRAIT_AI_ACCESS, ADMIN_TRAIT)) // Do they have it enabled?
+ return FALSE
return TRUE
/**
@@ -428,7 +430,7 @@
///Can the mob see reagents inside of containers?
/mob/proc/can_see_reagents()
- return stat == DEAD || has_unlimited_silicon_privilege || HAS_TRAIT(src, TRAIT_REAGENT_SCANNER) //Dead guys and silicons can always see reagents
+ return stat == DEAD || HAS_TRAIT(src, TRAIT_REAGENT_SCANNER) //Dead guys and silicons can always see reagents
///Can this mob hold items
/mob/proc/can_hold_items(obj/item/I)
diff --git a/code/modules/mob_spawn/corpses/mob_corpses.dm b/code/modules/mob_spawn/corpses/mob_corpses.dm
index f83dc13f1eded..c6d0cbd55cf4c 100644
--- a/code/modules/mob_spawn/corpses/mob_corpses.dm
+++ b/code/modules/mob_spawn/corpses/mob_corpses.dm
@@ -162,6 +162,16 @@
head = /obj/item/clothing/head/helmet/space/pirate
back = /obj/item/tank/jetpack/carbondioxide
+/obj/effect/mob_spawn/corpse/human/old_pirate_captain
+ name = "Pirate Captain Skeleton"
+ outfit = /datum/outfit/piratecorpse/captain
+ mob_species = /datum/species/skeleton
+
+/datum/outfit/piratecorpse/captain
+ glasses = /obj/item/clothing/glasses/eyepatch
+ head = /obj/item/clothing/head/costume/pirate
+ suit = /obj/item/clothing/suit/costume/pirate
+
/obj/effect/mob_spawn/corpse/human/russian
name = "Russian"
outfit = /datum/outfit/russiancorpse
diff --git a/code/modules/mob_spawn/ghost_roles/space_roles.dm b/code/modules/mob_spawn/ghost_roles/space_roles.dm
index 79d028bdbcb27..411f6bfd970ff 100644
--- a/code/modules/mob_spawn/ghost_roles/space_roles.dm
+++ b/code/modules/mob_spawn/ghost_roles/space_roles.dm
@@ -160,6 +160,8 @@
l_pocket = /obj/item/uplink/nuclear
r_pocket = /obj/item/modular_computer/pda/nukeops
+ skillchips = list(/obj/item/skillchip/disk_verifier)
+
/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/captain
name = "Syndicate Battlecruiser Captain"
you_are_text = "You are the captain aboard the syndicate flagship: the SBC Starfury."
diff --git a/code/modules/mob_spawn/mob_spawn.dm b/code/modules/mob_spawn/mob_spawn.dm
index 6a47eb5a7f17b..c43164fb62a5f 100644
--- a/code/modules/mob_spawn/mob_spawn.dm
+++ b/code/modules/mob_spawn/mob_spawn.dm
@@ -42,6 +42,12 @@
if(faction)
faction = string_list(faction)
+/obj/effect/mob_spawn/Destroy()
+ spawned_mob_ref = null
+ if(istype(outfit))
+ QDEL_NULL(outfit)
+ return ..()
+
/// Creates whatever mob the spawner makes. Return FALSE if we want to exit from here without doing that, returning NULL will be logged to admins.
/obj/effect/mob_spawn/proc/create(mob/mob_possessor, newname)
var/mob/living/spawned_mob = new mob_type(get_turf(src)) //living mobs only
@@ -158,7 +164,7 @@
SSpoints_of_interest.make_point_of_interest(src)
LAZYADD(GLOB.mob_spawners[name], src)
-/obj/effect/mob_spawn/Destroy()
+/obj/effect/mob_spawn/ghost_role/Destroy()
var/list/spawners = GLOB.mob_spawners[name]
LAZYREMOVE(spawners, src)
if(!LAZYLEN(spawners))
@@ -290,6 +296,7 @@
///these mob spawn subtypes trigger immediately (New or Initialize) and are not player controlled... since they're dead, you know?
/obj/effect/mob_spawn/corpse
+ density = FALSE //these are pretty much abstract objects that leave a corpse in their place.
///when this mob spawn should auto trigger.
var/spawn_when = CORPSE_INSTANT
diff --git a/code/modules/mod/mod_activation.dm b/code/modules/mod/mod_activation.dm
index 237e151bcb2c0..8c4de3be84d84 100644
--- a/code/modules/mod/mod_activation.dm
+++ b/code/modules/mod/mod_activation.dm
@@ -17,8 +17,8 @@
if(!pick)
return
var/part_reference = display_names[pick]
- var/obj/item/part = locate(part_reference) in parts
- if(!istype(part) || user.incapacitated())
+ var/obj/item/part = locate(part_reference) in get_parts()
+ if(!istype(part) || user.incapacitated)
return
if(active || activating)
balloon_alert(user, "deactivate the suit first!")
diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm
index cf91aaf482c22..cbd299e8b58b0 100644
--- a/code/modules/mod/mod_control.dm
+++ b/code/modules/mod/mod_control.dm
@@ -233,7 +233,7 @@
balloon_alert(wearer, "retract parts first!")
playsound(src, 'sound/machines/scanbuzz.ogg', 25, FALSE, SILENCED_SOUND_EXTRARANGE)
return
- if(!wearer.incapacitated())
+ if(!wearer.incapacitated)
var/atom/movable/screen/inventory/hand/ui_hand = over_object
if(wearer.putItemFromInventoryInHandIfPossible(src, ui_hand.held_index))
add_fingerprint(user)
@@ -572,6 +572,11 @@
balloon_alert(user, "[new_module] incompatible with [src]'s parts!")
playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
return
+ if(!new_module.can_install(src))
+ if(user)
+ balloon_alert(user, "[new_module] cannot be installed into [src]!")
+ playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
+ return
new_module.forceMove(src)
modules += new_module
complexity += new_module.complexity
diff --git a/code/modules/mod/mod_paint.dm b/code/modules/mod/mod_paint.dm
index 7897b60b794a7..0693b05a34854 100644
--- a/code/modules/mod/mod_paint.dm
+++ b/code/modules/mod/mod_paint.dm
@@ -55,7 +55,7 @@
data["currentColor"] = current_color
return data
-/obj/item/mod/paint/ui_act(action, list/params)
+/obj/item/mod/paint/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -126,7 +126,7 @@
mod.theme.set_skin(mod, pick)
/obj/item/mod/paint/proc/check_menu(obj/item/mod/control/mod, mob/user)
- if(user.incapacitated() || !user.is_holding(src) || !mod || mod.active || mod.activating)
+ if(user.incapacitated || !user.is_holding(src) || !mod || mod.active || mod.activating)
return FALSE
return TRUE
diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm
index 230f53e9403be..15dcf4f9bef94 100644
--- a/code/modules/mod/mod_theme.dm
+++ b/code/modules/mod/mod_theme.dm
@@ -199,6 +199,8 @@
UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL,
UNSEALED_MESSAGE = HELMET_UNSEAL_MESSAGE,
SEALED_MESSAGE = HELMET_SEAL_MESSAGE,
+ UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEEYES|HIDEHAIR|HIDESNOUT,
+ SEALED_COVER = HEADCOVERSEYES,
),
/obj/item/clothing/suit/mod = list(
UNSEALED_CLOTHING = THICKMATERIAL,
@@ -1351,6 +1353,7 @@
siemens_coefficient = 0
slowdown_inactive = 0
slowdown_active = 0
+ activation_step_time = MOD_ACTIVATION_STEP_TIME * 0.5
ui_theme = "syndicate"
slot_flags = ITEM_SLOT_BELT
inbuilt_modules = list(/obj/item/mod/module/infiltrator, /obj/item/mod/module/storage/belt, /obj/item/mod/module/demoralizer)
diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm
index db9d150f3438a..b20efa4c66641 100644
--- a/code/modules/mod/mod_types.dm
+++ b/code/modules/mod/mod_types.dm
@@ -493,7 +493,7 @@
/obj/item/mod/control/pre_equipped/responsory/janitor
insignia_type = /obj/item/mod/module/insignia/janitor
- additional_module = /obj/item/mod/module/clamp
+ additional_module = /obj/item/mod/module/noslip
/obj/item/mod/control/pre_equipped/responsory/clown
insignia_type = /obj/item/mod/module/insignia/clown
diff --git a/code/modules/mod/modules/_module.dm b/code/modules/mod/modules/_module.dm
index 4bd4ef0d2ab80..551145b5e6d3a 100644
--- a/code/modules/mod/modules/_module.dm
+++ b/code/modules/mod/modules/_module.dm
@@ -94,6 +94,10 @@
needed_slots -= needed_slot
return !length(needed_slots)
+/// Additional checks for whenever a module can be installed into a suit or not
+/obj/item/mod/module/proc/can_install(obj/item/mod/control/mod)
+ return TRUE
+
/// Called when the module is selected from the TGUI, radial or the action button
/obj/item/mod/module/proc/on_select()
if(!mod.wearer)
@@ -200,7 +204,7 @@
/// Called when an activated module without a device is used
/obj/item/mod/module/proc/on_select_use(atom/target)
- if(!(allow_flags & MODULE_ALLOW_INCAPACITATED) && mod.wearer.incapacitated(IGNORE_GRAB))
+ if(!(allow_flags & MODULE_ALLOW_INCAPACITATED) && INCAPACITATED_IGNORING(mod.wearer, INCAPABLE_GRAB))
return FALSE
mod.wearer.face_atom(target)
if(!used())
diff --git a/code/modules/mod/modules/module_kinesis.dm b/code/modules/mod/modules/module_kinesis.dm
index 9048701f1d017..374be840d9507 100644
--- a/code/modules/mod/modules/module_kinesis.dm
+++ b/code/modules/mod/modules/module_kinesis.dm
@@ -67,7 +67,7 @@
clear_grab(playsound = !deleting)
/obj/item/mod/module/anomaly_locked/kinesis/process(seconds_per_tick)
- if(!mod.wearer.client || mod.wearer.incapacitated(IGNORE_GRAB))
+ if(!mod.wearer.client || INCAPACITATED_IGNORING(mod.wearer, INCAPABLE_GRAB))
clear_grab()
return
if(!range_check(grabbed_atom))
diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm
index 2ab0b0a1fd269..3b7803a517aac 100644
--- a/code/modules/mod/modules/modules_general.dm
+++ b/code/modules/mod/modules/modules_general.dm
@@ -310,6 +310,15 @@
mask.flags_cover &= ~(MASKCOVERSMOUTH |PEPPERPROOF)
mask.visor_flags_cover &= ~(MASKCOVERSMOUTH |PEPPERPROOF)
+/obj/item/mod/module/mouthhole/can_install(obj/item/mod/control/mod)
+ var/obj/item/clothing/helmet = mod.get_part_from_slot(ITEM_SLOT_HEAD)
+ var/obj/item/clothing/mask = mod.get_part_from_slot(ITEM_SLOT_MASK)
+ if(istype(helmet) && ((helmet.flags_cover|helmet.visor_flags_cover) & (HEADCOVERSMOUTH|PEPPERPROOF)))
+ return ..()
+ if(istype(mask) && ((mask.flags_cover|mask.visor_flags_cover) & (MASKCOVERSMOUTH|PEPPERPROOF)))
+ return ..()
+ return FALSE
+
/obj/item/mod/module/mouthhole/on_uninstall(deleting = FALSE)
if(deleting)
return
@@ -953,6 +962,76 @@
balloon_alert(mod.wearer, "ammo box dispensed.")
playsound(src, 'sound/machines/microwave/microwave-end.ogg', 50, TRUE)
+/obj/item/mod/module/fishing_glove
+ name = "MOD fishing glove module"
+ desc = "A MOD module that takes in an external fishing rod to enable the user to fish without having to hold one."
+ icon_state = "fishing_glove"
+ complexity = 1
+ overlay_state_inactive = "fishing_glove"
+ incompatible_modules = (/obj/item/mod/module/fishing_glove)
+ required_slots = list(ITEM_SLOT_GLOVES)
+ var/obj/item/fishing_rod/equipped
+
+/obj/item/mod/module/fishing_glove/Initialize(mapload)
+ . = ..()
+ register_context()
+
+/obj/item/mod/module/fishing_glove/add_context(atom/source, list/context, obj/item/held_item, mob/user)
+ if(!held_item && equipped)
+ context[SCREENTIP_CONTEXT_RMB] = "Remove rod"
+ return CONTEXTUAL_SCREENTIP_SET
+ if(istype(held_item, /obj/item/fishing_rod))
+ context[SCREENTIP_CONTEXT_LMB] = "Insert rod"
+ return CONTEXTUAL_SCREENTIP_SET
+
+/obj/item/mod/module/fishing_glove/examine(mob/user)
+ . = ..()
+ . += span_info("You can [EXAMINE_HINT("right-click")] the modsuit gloves to open the fishing rod interface once attached and activated.")
+ if(equipped)
+ . += span_info("it has a [icon2html(equipped, user)] installed. [EXAMINE_HINT("Right-Click")] to remove it.")
+
+/obj/item/mod/module/fishing_glove/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
+ if(!istype(tool, /obj/item/fishing_rod))
+ return ..()
+ if(equipped)
+ balloon_alert(user, "remove current rod first!")
+ if(!user.transferItemToLoc(tool, src))
+ user.balloon_alert(user, "it's stuck!")
+ equipped = tool
+ balloon_alert(user, "rod inserted")
+ playsound(src, 'sound/items/click.ogg', 50, TRUE)
+ return ITEM_INTERACT_SUCCESS
+
+/obj/item/mod/module/fishing_glove/attack_hand_secondary(mob/user, list/modifiers)
+ . = ..()
+ if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN)
+ return
+ if(!equipped)
+ return
+ user.put_in_hands(equipped)
+ balloon_alert(user, "rod removed")
+ playsound(src, 'sound/items/click.ogg', 50, TRUE)
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+
+/obj/item/mod/module/fishing_glove/Exited(atom/movable/gone)
+ if(gone == equipped)
+ equipped = null
+ var/obj/item/gloves = mod?.get_part_from_slot(ITEM_SLOT_GLOVES)
+ if(gloves && !QDELETED(mod))
+ qdel(gloves.GetComponent(/datum/component/profound_fisher))
+
+/obj/item/mod/module/fishing_glove/on_suit_activation()
+ if(!equipped)
+ return
+ var/obj/item/gloves = mod.get_part_from_slot(ITEM_SLOT_GLOVES)
+ if(gloves)
+ gloves.AddComponent(/datum/component/profound_fisher, equipped)
+
+/obj/item/mod/module/fishing_glove/on_suit_deactivation(deleting = FALSE)
+ var/obj/item/gloves = mod.get_part_from_slot(ITEM_SLOT_GLOVES)
+ if(gloves && !deleting)
+ qdel(gloves.GetComponent(/datum/component/profound_fisher))
+
/obj/item/mod/module/shock_absorber
name = "MOD shock absorption module"
desc = "A module that makes the user resistant to the knockdown inflicted by Stun Batons."
diff --git a/code/modules/mod/modules/modules_medical.dm b/code/modules/mod/modules/modules_medical.dm
index 8a1d31a92f6b0..0f44570201776 100644
--- a/code/modules/mod/modules/modules_medical.dm
+++ b/code/modules/mod/modules/modules_medical.dm
@@ -428,3 +428,22 @@
/datum/surgery/advanced/bioware/cortex_folding,
/datum/surgery/advanced/bioware/cortex_folding/mechanic,
)
+
+/obj/item/mod/module/surgical_processor/emergency
+ desc = "A module using an onboard surgical computer which can be connected to other computers to download and \
+ perform advanced surgeries on the go. This one came pre-loaded with some emergency surgeries."
+ device = /obj/item/surgical_processor/mod/emergency
+
+/obj/item/surgical_processor/mod/emergency
+ loaded_surgeries = list(
+ /datum/surgery/healing/combo/upgraded/femto,
+ /datum/surgery/blood_filter,
+ /datum/surgery/brain_surgery,
+ /datum/surgery/coronary_bypass,
+ /datum/surgery/ear_surgery,
+ /datum/surgery/eye_surgery,
+ /datum/surgery/hepatectomy,
+ /datum/surgery/revival,
+ /datum/surgery/stomach_pump,
+ /datum/surgery/advanced/wing_reconstruction,
+ )
diff --git a/code/modules/mod/modules/modules_ninja.dm b/code/modules/mod/modules/modules_ninja.dm
index cfa95fb8a591e..a5215341a06d2 100644
--- a/code/modules/mod/modules/modules_ninja.dm
+++ b/code/modules/mod/modules/modules_ninja.dm
@@ -72,9 +72,11 @@
cooldown_time = 3 SECONDS
/obj/item/mod/module/stealth/ninja/on_activation()
+ . = ..()
ADD_TRAIT(mod.wearer, TRAIT_SILENT_FOOTSTEPS, MOD_TRAIT)
/obj/item/mod/module/stealth/ninja/on_deactivation(display_message = TRUE, deleting = FALSE)
+ . = ..()
REMOVE_TRAIT(mod.wearer, TRAIT_SILENT_FOOTSTEPS, MOD_TRAIT)
///Camera Vision - Prevents flashes, blocks tracking.
diff --git a/code/modules/mod/modules/modules_security.dm b/code/modules/mod/modules/modules_security.dm
index 752273fa0748c..5da8ff00241c9 100644
--- a/code/modules/mod/modules/modules_security.dm
+++ b/code/modules/mod/modules/modules_security.dm
@@ -568,7 +568,7 @@
projectile.ricochets_max += 1
projectile.min_ricochets += 1
projectile.ricochet_incidence_leeway = 0 //allows the projectile to bounce at any angle.
- ADD_TRAIT(projectile, TRAIT_ALWAYS_HIT_ZONE, MOD_TRAIT)
+ projectile.accuracy_falloff = 0
#undef SHOOTING_ASSISTANT_OFF
#undef STORMTROOPER_MODE
diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm
index 08bd61945ef47..03503ac36d864 100644
--- a/code/modules/modular_computers/computers/item/computer.dm
+++ b/code/modules/modular_computers/computers/item/computer.dm
@@ -727,6 +727,8 @@
UpdateDisplay()
/obj/item/modular_computer/ui_action_click(mob/user, actiontype)
+ if(!issilicon(user))
+ playsound(src, SFX_KEYBOARD_CLICKS, 10, TRUE, FALSE)
if(istype(actiontype, /datum/action/item_action/toggle_computer_light))
toggle_flashlight(user)
return
diff --git a/code/modules/modular_computers/computers/item/disks/role_disks.dm b/code/modules/modular_computers/computers/item/disks/role_disks.dm
index f7f20efb70b43..2191aaccdff1d 100644
--- a/code/modules/modular_computers/computers/item/disks/role_disks.dm
+++ b/code/modules/modular_computers/computers/item/disks/role_disks.dm
@@ -6,7 +6,6 @@
max_capacity = 32
///Static list of programss ALL command tablets have.
var/static/list/datum/computer_file/command_programs = list(
- /datum/computer_file/program/crew_manifest,
/datum/computer_file/program/science,
/datum/computer_file/program/status,
)
@@ -74,7 +73,6 @@
icon_state = "datadisk9"
starting_programs = list(
/datum/computer_file/program/records/security,
- /datum/computer_file/program/crew_manifest,
)
/**
diff --git a/code/modules/modular_computers/computers/item/disks/unique_disks.dm b/code/modules/modular_computers/computers/item/disks/unique_disks.dm
index 1fd31957befca..a5e9d9750f3ea 100644
--- a/code/modules/modular_computers/computers/item/disks/unique_disks.dm
+++ b/code/modules/modular_computers/computers/item/disks/unique_disks.dm
@@ -23,7 +23,6 @@
/datum/computer_file/program/supermatter_monitor,
/datum/computer_file/program/newscaster,
/datum/computer_file/program/secureye,
- /datum/computer_file/program/crew_manifest,
/datum/computer_file/program/status,
)
potential_programs += subtypesof(/datum/computer_file/program/maintenance) - /datum/computer_file/program/maintenance/theme
diff --git a/code/modules/modular_computers/computers/item/pda.dm b/code/modules/modular_computers/computers/item/pda.dm
index b40ae45f27f91..ae63639aef6f9 100644
--- a/code/modules/modular_computers/computers/item/pda.dm
+++ b/code/modules/modular_computers/computers/item/pda.dm
@@ -38,6 +38,7 @@
/datum/computer_file/program/messenger,
/datum/computer_file/program/nt_pay,
/datum/computer_file/program/notepad,
+ /datum/computer_file/program/crew_manifest,
)
///List of items that can be stored in a PDA
var/static/list/contained_item = list(
@@ -419,7 +420,7 @@
return TRUE
/obj/item/modular_computer/pda/silicon/ui_state(mob/user)
- return GLOB.reverse_contained_state
+ return GLOB.deep_inventory_state
/obj/item/modular_computer/pda/silicon/cyborg/syndicate
icon_state = "tablet-silicon-syndicate"
diff --git a/code/modules/modular_computers/computers/item/role_tablet_presets.dm b/code/modules/modular_computers/computers/item/role_tablet_presets.dm
index 7e4c7402c770b..cbd784b1ef0d4 100644
--- a/code/modules/modular_computers/computers/item/role_tablet_presets.dm
+++ b/code/modules/modular_computers/computers/item/role_tablet_presets.dm
@@ -6,14 +6,19 @@
greyscale_config = /datum/greyscale_config/tablet/head
greyscale_colors = "#67A364#a92323"
max_capacity = parent_type::max_capacity * 2
- starting_programs = list(
- /datum/computer_file/program/crew_manifest,
+ var/static/list/datum/computer_file/head_programs = list(
/datum/computer_file/program/status,
/datum/computer_file/program/science,
/datum/computer_file/program/robocontrol,
/datum/computer_file/program/budgetorders,
)
+/obj/item/modular_computer/pda/heads/Initialize(mapload)
+ . = ..()
+ for(var/programs in head_programs)
+ var/datum/computer_file/program/program_type = new programs
+ store_file(program_type)
+
/obj/item/modular_computer/pda/heads/captain
name = "captain PDA"
greyscale_config = /datum/greyscale_config/tablet/captain
@@ -35,11 +40,6 @@
greyscale_config = /datum/greyscale_config/tablet/stripe_thick/head
greyscale_colors = "#374f7e#a52f29#a52f29"
starting_programs = list(
- /datum/computer_file/program/crew_manifest,
- /datum/computer_file/program/status,
- /datum/computer_file/program/science,
- /datum/computer_file/program/robocontrol,
- /datum/computer_file/program/budgetorders,
/datum/computer_file/program/records/security,
/datum/computer_file/program/job_management,
)
@@ -50,11 +50,6 @@
greyscale_colors = "#EA3232#0000CC"
inserted_item = /obj/item/pen/red/security
starting_programs = list(
- /datum/computer_file/program/crew_manifest,
- /datum/computer_file/program/status,
- /datum/computer_file/program/science,
- /datum/computer_file/program/robocontrol,
- /datum/computer_file/program/budgetorders,
/datum/computer_file/program/records/security,
)
@@ -63,11 +58,6 @@
greyscale_config = /datum/greyscale_config/tablet/stripe_thick/head
greyscale_colors = "#D99A2E#69DBF3#FAFAFA"
starting_programs = list(
- /datum/computer_file/program/crew_manifest,
- /datum/computer_file/program/status,
- /datum/computer_file/program/science,
- /datum/computer_file/program/robocontrol,
- /datum/computer_file/program/budgetorders,
/datum/computer_file/program/atmosscan,
/datum/computer_file/program/alarm_monitor,
/datum/computer_file/program/supermatter_monitor,
@@ -78,11 +68,6 @@
greyscale_config = /datum/greyscale_config/tablet/stripe_thick/head
greyscale_colors = "#FAFAFA#000099#3F96CC"
starting_programs = list(
- /datum/computer_file/program/crew_manifest,
- /datum/computer_file/program/status,
- /datum/computer_file/program/science,
- /datum/computer_file/program/robocontrol,
- /datum/computer_file/program/budgetorders,
/datum/computer_file/program/maintenance/phys_scanner,
/datum/computer_file/program/records/medical,
)
@@ -94,12 +79,7 @@
inserted_item = /obj/item/pen/fountain
starting_programs = list(
/datum/computer_file/program/borg_monitor,
- /datum/computer_file/program/budgetorders,
- /datum/computer_file/program/crew_manifest,
- /datum/computer_file/program/robocontrol,
- /datum/computer_file/program/science,
/datum/computer_file/program/scipaper_program,
- /datum/computer_file/program/status,
/datum/computer_file/program/signal_commander,
)
@@ -110,11 +90,6 @@
inserted_item = /obj/item/pen/survival
stored_paper = 20
starting_programs = list(
- /datum/computer_file/program/crew_manifest,
- /datum/computer_file/program/status,
- /datum/computer_file/program/science,
- /datum/computer_file/program/robocontrol,
- /datum/computer_file/program/budgetorders,
/datum/computer_file/program/shipping,
/datum/computer_file/program/restock_tracker,
)
@@ -129,7 +104,6 @@
inserted_item = /obj/item/pen/red/security
starting_programs = list(
/datum/computer_file/program/records/security,
- /datum/computer_file/program/crew_manifest,
/datum/computer_file/program/robocontrol,
)
@@ -139,7 +113,6 @@
inserted_item = /obj/item/pen/red/security
starting_programs = list(
/datum/computer_file/program/records/security,
- /datum/computer_file/program/crew_manifest,
/datum/computer_file/program/robocontrol,
)
@@ -150,7 +123,6 @@
inserted_item = /obj/item/pen/red/security
starting_programs = list(
/datum/computer_file/program/records/security,
- /datum/computer_file/program/crew_manifest,
/datum/computer_file/program/robocontrol,
)
@@ -244,7 +216,6 @@
greyscale_colors = "#FAFAFA#000099#1f2026"
starting_programs = list(
/datum/computer_file/program/records/medical,
- /datum/computer_file/program/crew_manifest,
)
/**
@@ -405,7 +376,6 @@
greyscale_colors = "#333333#000099#3F96CC"
starting_programs = list(
/datum/computer_file/program/records/medical,
- /datum/computer_file/program/crew_manifest,
/datum/computer_file/program/robocontrol,
)
@@ -422,7 +392,6 @@
name = "bridge assistant PDA"
greyscale_colors = "#374f7e#a92323"
starting_programs = list(
- /datum/computer_file/program/crew_manifest,
/datum/computer_file/program/status,
)
@@ -432,7 +401,6 @@
inserted_item = /obj/item/pen/fountain
starting_programs = list(
/datum/computer_file/program/records/security,
- /datum/computer_file/program/crew_manifest,
/datum/computer_file/program/coupon, //veteran discount
/datum/computer_file/program/skill_tracker,
)
diff --git a/code/modules/modular_computers/file_system/programs/crewmanifest.dm b/code/modules/modular_computers/file_system/programs/crewmanifest.dm
index 39a9d8c3c7fe5..d0dcf0ae873fe 100644
--- a/code/modules/modular_computers/file_system/programs/crewmanifest.dm
+++ b/code/modules/modular_computers/file_system/programs/crewmanifest.dm
@@ -1,15 +1,13 @@
/datum/computer_file/program/crew_manifest
filename = "plexagoncrew"
filedesc = "Plexagon Crew List"
- downloader_category = PROGRAM_CATEGORY_SECURITY
+ downloader_category = PROGRAM_CATEGORY_DEVICE
program_open_overlay = "id"
extended_desc = "Program for viewing and printing the current crew manifest"
- download_access = list(ACCESS_SECURITY, ACCESS_COMMAND)
program_flags = PROGRAM_ON_NTNET_STORE | PROGRAM_REQUIRES_NTNET
- size = 4
+ size = 0
tgui_id = "NtosCrewManifest"
program_icon = "clipboard-list"
- detomatix_resistance = DETOMATIX_RESIST_MAJOR
/datum/computer_file/program/crew_manifest/ui_static_data(mob/user)
var/list/data = list()
diff --git a/code/modules/modular_computers/file_system/programs/frontier.dm b/code/modules/modular_computers/file_system/programs/frontier.dm
index c8030287e8943..04e902a5e8d4c 100644
--- a/code/modules/modular_computers/file_system/programs/frontier.dm
+++ b/code/modules/modular_computers/file_system/programs/frontier.dm
@@ -8,7 +8,7 @@
program_open_overlay = "research"
tgui_id = "NtosScipaper"
program_icon = "paper-plane"
- download_access = list(ACCESS_ORDNANCE, ACCESS_SCIENCE, ACCESS_AWAY_SCIENCE)
+ download_access = list(ACCESS_ORDNANCE, ACCESS_SCIENCE, ACCESS_AWAY_SCIENCE, ACCESS_ATMOSPHERICS)
var/datum/techweb/linked_techweb
/// Unpublished, temporary paper datum.
diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm
index 4ad633aa94df4..6436e6be2b862 100644
--- a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm
+++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm
@@ -157,7 +157,7 @@
/datum/computer_file/program/messenger/ui_state(mob/user)
if(issilicon(user))
- return GLOB.reverse_contained_state
+ return GLOB.deep_inventory_state
return GLOB.default_state
/datum/computer_file/program/messenger/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
diff --git a/code/modules/modular_computers/file_system/programs/records.dm b/code/modules/modular_computers/file_system/programs/records.dm
index 063c19d35e18b..fbd0b9edabd66 100644
--- a/code/modules/modular_computers/file_system/programs/records.dm
+++ b/code/modules/modular_computers/file_system/programs/records.dm
@@ -29,6 +29,7 @@
download_access = list(ACCESS_SECURITY, ACCESS_FLAG_COMMAND)
program_flags = PROGRAM_ON_NTNET_STORE
mode = "security"
+ detomatix_resistance = DETOMATIX_RESIST_MINOR
/datum/computer_file/program/records/proc/GetRecordsReadable()
var/list/all_records = list()
diff --git a/code/modules/modular_computers/file_system/programs/statusdisplay.dm b/code/modules/modular_computers/file_system/programs/statusdisplay.dm
index fa844215b93b9..a57940d99c1fa 100644
--- a/code/modules/modular_computers/file_system/programs/statusdisplay.dm
+++ b/code/modules/modular_computers/file_system/programs/statusdisplay.dm
@@ -11,6 +11,7 @@
can_run_on_flags = PROGRAM_ALL
program_flags = PROGRAM_REQUIRES_NTNET
+ detomatix_resistance = DETOMATIX_RESIST_MAJOR
var/upper_text = ""
var/lower_text = ""
diff --git a/code/modules/modular_computers/file_system/programs/virtual_pet.dm b/code/modules/modular_computers/file_system/programs/virtual_pet.dm
index 78a9148b013fe..8f1eef074d46a 100644
--- a/code/modules/modular_computers/file_system/programs/virtual_pet.dm
+++ b/code/modules/modular_computers/file_system/programs/virtual_pet.dm
@@ -429,7 +429,7 @@ GLOBAL_LIST_EMPTY(virtual_pets_list)
var/static/list/possible_emotes = list(
/datum/emote/flip,
- /datum/emote/living/jump,
+ /datum/emote/jump,
/datum/emote/living/shiver,
/datum/emote/spin,
/datum/emote/silicon/beep,
diff --git a/code/modules/pai/hud.dm b/code/modules/pai/hud.dm
index b104c7b90eab4..77bcafefc82d2 100644
--- a/code/modules/pai/hud.dm
+++ b/code/modules/pai/hud.dm
@@ -5,7 +5,7 @@
var/required_software
/atom/movable/screen/pai/Click()
- if(isobserver(usr) || usr.incapacitated())
+ if(isobserver(usr) || usr.incapacitated)
return FALSE
var/mob/living/silicon/pai/user = usr
if(required_software && !user.installed_software.Find(required_software))
diff --git a/code/modules/pai/say.dm b/code/modules/pai/say.dm
index b35abfe7f9d80..c7ed1a566d883 100644
--- a/code/modules/pai/say.dm
+++ b/code/modules/pai/say.dm
@@ -1,2 +1,2 @@
/mob/living/silicon/pai/binarycheck()
- return radio?.translate_binary
+ return (radio?.special_channels & RADIO_SPECIAL_BINARY)
diff --git a/code/modules/pai/shell.dm b/code/modules/pai/shell.dm
index 2ef3cf3d8e2dd..6a8a8e709c82b 100644
--- a/code/modules/pai/shell.dm
+++ b/code/modules/pai/shell.dm
@@ -30,7 +30,7 @@
* FALSE otherwise.
*/
/mob/living/silicon/pai/proc/check_menu(atom/anchor)
- if(incapacitated())
+ if(incapacitated)
return FALSE
if(get_turf(src) != get_turf(anchor))
return FALSE
diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm
index 17ecc92708cbd..7750b3926465f 100644
--- a/code/modules/paperwork/clipboard.dm
+++ b/code/modules/paperwork/clipboard.dm
@@ -158,7 +158,7 @@
return data
-/obj/item/clipboard/ui_act(action, params)
+/obj/item/clipboard/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm
index e652b92e97805..fc1b986ce6d67 100644
--- a/code/modules/paperwork/fax.dm
+++ b/code/modules/paperwork/fax.dm
@@ -43,6 +43,9 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
/obj/item/card,
/obj/item/folder/biscuit,
/obj/item/food/breadslice,
+ /obj/item/food/chapslice,
+ /obj/item/food/cookie,
+ /obj/item/food/grilled_chapslice,
/obj/item/food/pizza/flatbread,
/obj/item/food/pizzaslice,
/obj/item/food/root_flatbread,
@@ -66,6 +69,27 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
fax_name = "[current_area.name]"
return ..()
+/obj/machinery/fax/admin/syndicate
+ name = "Syndicate Fax Machine"
+
+/obj/machinery/fax/admin/syndicate/Initialize(mapload)
+ fax_name = "[special_networks["syndicate"]["fax_name"]]"
+ fax_id = special_networks["syndicate"]["fax_id"]
+ syndicate_network = TRUE
+ return ..()
+
+/obj/machinery/fax/admin
+ name = "CentCom Fax Machine"
+
+/obj/machinery/fax/admin/Initialize(mapload)
+ if (!fax_name)
+ fax_name = "[GLOB.nt_fax_department]"
+ if(!fax_id)
+ fax_id = special_networks["nanotrasen"]["fax_id"]
+ name = "[fax_name] Fax Machine"
+ visible_to_network = FALSE
+ return ..()
+
/obj/machinery/fax/Initialize(mapload)
. = ..()
if (!fax_id)
@@ -232,7 +256,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
var/list/data = list()
//Record a list of all existing faxes.
for(var/obj/machinery/fax/FAX as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/fax))
- if(FAX.fax_id == fax_id || is_centcom_level(FAX.z)) //skip yourself and the centcom fax machine.
+ if(FAX.fax_id == fax_id) //skip yourself
continue
var/list/fax_data = list()
fax_data["fax_name"] = FAX.fax_name
@@ -253,11 +277,13 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
data["fax_history"] = fax_history
var/list/special_networks_data = list()
for(var/key in special_networks)
+ if(special_networks[key]["fax_id"] == fax_id)
+ continue
special_networks_data += list(special_networks[key])
data["special_faxes"] = special_networks_data
return data
-/obj/machinery/fax/ui_act(action, list/params)
+/obj/machinery/fax/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -300,7 +326,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department
history_add("Send", params["name"])
GLOB.requests.fax_request(usr.client, "sent a fax message from [fax_name]/[fax_id] to [params["name"]]", fax_paper)
- to_chat(GLOB.admins, span_adminnotice("[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name)]"), confidential = TRUE)
+ to_chat(GLOB.admins, span_adminnotice("[icon2html(src.icon, GLOB.admins)]FAX REQUEST: [ADMIN_FULLMONTY(usr)]: [span_linkify("sent a fax message from [fax_name]/[fax_id][ADMIN_FLW(src)] to [html_encode(params["name"])]")] [ADMIN_SHOW_PAPER(fax_paper)] [ADMIN_PRINT_FAX(fax_paper, fax_name, params["id"])]"), confidential = TRUE)
for(var/client/staff as anything in GLOB.admins)
if(staff?.prefs.read_preference(/datum/preference/toggle/comms_notification))
SEND_SOUND(staff, sound('sound/misc/server-ready.ogg'))
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index 46b9b8f31fdd2..41d9aabb54ac8 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -83,7 +83,7 @@
return data
-/obj/structure/filingcabinet/ui_act(action, params)
+/obj/structure/filingcabinet/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index 3ee556b3adf4f..50c833ca89fd5 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -106,7 +106,7 @@
return data
-/obj/item/folder/ui_act(action, params)
+/obj/item/folder/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index fe2de7e752030..14202b1bf3b36 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -64,6 +64,9 @@
///If TRUE, staff can read paper everywhere, but usually from requests panel.
var/request_state = FALSE
+ ///If this paper can be selected as a candidate for a future message in a bottle when spawned outside of mapload. Doesn't affect manually doing that.
+ var/can_become_message_in_bottle = TRUE
+
/obj/item/paper/Initialize(mapload)
. = ..()
pixel_x = base_pixel_x + rand(-9, 9)
@@ -74,10 +77,14 @@
update_appearance()
+ if(can_become_message_in_bottle && !mapload && prob(MESSAGE_BOTTLE_CHANCE))
+ LAZYADD(SSpersistence.queued_message_bottles, src)
+
/obj/item/paper/Destroy()
- . = ..()
camera_holder = null
clear_paper()
+ LAZYREMOVE(SSpersistence.queued_message_bottles, src)
+ return ..()
/// Determines whether this paper has been written or stamped to.
/obj/item/paper/proc/is_empty()
@@ -306,7 +313,7 @@
set category = "Object"
set src in usr
- if(!usr.can_read(src) || usr.is_blind() || usr.incapacitated(IGNORE_RESTRAINTS|IGNORE_GRAB) || (isobserver(usr) && !isAdminGhostAI(usr)))
+ if(!usr.can_read(src) || usr.is_blind() || INCAPACITATED_IGNORING(usr, INCAPABLE_RESTRAINTS|INCAPABLE_GRAB) || (isobserver(usr) && !isAdminGhostAI(usr)))
return
if(ishuman(usr))
var/mob/living/carbon/human/H = usr
@@ -351,7 +358,7 @@
return UI_UPDATE
if(!in_range(user, src) && !isobserver(user))
return UI_CLOSE
- if(user.incapacitated(IGNORE_RESTRAINTS|IGNORE_GRAB) || (isobserver(user) && !isAdminGhostAI(user)))
+ if(INCAPACITATED_IGNORING(user, INCAPABLE_RESTRAINTS|INCAPABLE_GRAB) || (isobserver(user) && !isAdminGhostAI(user)))
return UI_UPDATE
// Even harder to read if your blind...braile? humm
// .. or if you cannot read
@@ -527,22 +534,10 @@
static_data["user_name"] = user.real_name
- static_data["raw_text_input"] = list()
- for(var/datum/paper_input/text_input as anything in raw_text_inputs)
- static_data["raw_text_input"] += list(text_input.to_list())
-
- static_data["raw_field_input"] = list()
- for(var/datum/paper_field/field_input as anything in raw_field_input_data)
- static_data["raw_field_input"] += list(field_input.to_list())
-
- static_data["raw_stamp_input"] = list()
- for(var/datum/paper_stamp/stamp_input as anything in raw_stamp_data)
- static_data["raw_stamp_input"] += list(stamp_input.to_list())
+ static_data += convert_to_data()
static_data["max_length"] = MAX_PAPER_LENGTH
static_data["max_input_field_length"] = MAX_PAPER_INPUT_FIELD_LENGTH
- static_data["paper_color"] = color ? color : COLOR_WHITE
- static_data["paper_name"] = name
static_data["default_pen_font"] = PEN_FONT
static_data["default_pen_color"] = COLOR_BLACK
@@ -550,6 +545,43 @@
return static_data;
+/obj/item/paper/proc/convert_to_data()
+ var/list/data = list()
+
+ data[LIST_PAPER_RAW_TEXT_INPUT] = list()
+ for(var/datum/paper_input/text_input as anything in raw_text_inputs)
+ data[LIST_PAPER_RAW_TEXT_INPUT] += list(text_input.to_list())
+
+ data[LIST_PAPER_RAW_FIELD_INPUT] = list()
+ for(var/datum/paper_field/field_input as anything in raw_field_input_data)
+ data[LIST_PAPER_RAW_FIELD_INPUT] += list(field_input.to_list())
+
+ data[LIST_PAPER_RAW_STAMP_INPUT] = list()
+ for(var/datum/paper_stamp/stamp_input as anything in raw_stamp_data)
+ data[LIST_PAPER_RAW_STAMP_INPUT] += list(stamp_input.to_list())
+
+ data[LIST_PAPER_COLOR] = color ? color : COLOR_WHITE
+ data[LIST_PAPER_NAME] = name
+
+ return data
+
+/obj/item/paper/proc/write_from_data(list/data)
+ for(var/list/input as anything in data[LIST_PAPER_RAW_TEXT_INPUT])
+ add_raw_text(input[LIST_PAPER_RAW_TEXT], input[LIST_PAPER_FONT], input[LIST_PAPER_FIELD_COLOR], input[LIST_PAPER_BOLD], input[LIST_PAPER_ADVANCED_HTML])
+
+ for(var/list/field as anything in data[LIST_PAPER_RAW_FIELD_INPUT])
+ var/list/input = field[LIST_PAPER_FIELD_DATA]
+ add_field_input(field[LIST_PAPER_FIELD_INDEX], input[LIST_PAPER_RAW_TEXT], input[LIST_PAPER_FONT], input[LIST_PAPER_FIELD_COLOR], input[LIST_PAPER_BOLD], field[LIST_PAPER_IS_SIGNATURE])
+
+ for(var/list/stamp as anything in data[LIST_PAPER_RAW_STAMP_INPUT])
+ add_stamp(stamp[LIST_PAPER_CLASS], stamp[LIST_PAPER_STAMP_X], stamp[LIST_PAPER_STAMP_Y], stamp[LIST_PAPER_ROTATION])
+
+ var/new_color = data[LIST_PAPER_COLOR]
+ if(new_color != COLOR_WHITE)
+ add_atom_colour(new_color, FIXED_COLOUR_PRIORITY)
+
+ name = data[LIST_PAPER_NAME]
+
/obj/item/paper/ui_data(mob/user)
var/list/data = list()
@@ -753,11 +785,11 @@
/datum/paper_input/proc/to_list()
return list(
- raw_text = raw_text,
- font = font,
- color = colour,
- bold = bold,
- advanced_html = advanced_html,
+ LIST_PAPER_RAW_TEXT = raw_text,
+ LIST_PAPER_FONT = font,
+ LIST_PAPER_FIELD_COLOR = colour,
+ LIST_PAPER_BOLD = bold,
+ LIST_PAPER_ADVANCED_HTML = advanced_html,
)
/// Returns the raw contents of the input as html, with **ZERO SANITIZATION**
@@ -793,10 +825,10 @@
/datum/paper_stamp/proc/to_list()
return list(
- class = class,
- x = stamp_x,
- y = stamp_y,
- rotation = rotation,
+ LIST_PAPER_CLASS = class,
+ LIST_PAPER_STAMP_X = stamp_x,
+ LIST_PAPER_STAMP_Y = stamp_y,
+ LIST_PAPER_ROTATION = rotation,
)
/// A reference to some data that replaces a modifiable input field at some given index in paper raw input parsing.
@@ -818,9 +850,9 @@
/datum/paper_field/proc/to_list()
return list(
- field_index = field_index,
- field_data = field_data.to_list(),
- is_signature = is_signature,
+ LIST_PAPER_FIELD_INDEX = field_index,
+ LIST_PAPER_FIELD_DATA = field_data.to_list(),
+ LIST_PAPER_IS_SIGNATURE = is_signature,
)
/obj/item/paper/construction
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index 7b734c1530666..1d913f4a236b0 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -91,7 +91,7 @@
/obj/item/paperplane/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(iscarbon(hit_atom) && HAS_TRAIT(hit_atom, TRAIT_PAPER_MASTER))
var/mob/living/carbon/hit_carbon = hit_atom
- if(hit_carbon.can_catch_item(TRUE))
+ if(hit_carbon.can_catch_item(src, skip_throw_mode_check = TRUE))
hit_carbon.throw_mode_on(THROW_MODE_TOGGLE)
. = ..()
diff --git a/code/modules/paperwork/paperwork.dm b/code/modules/paperwork/paperwork.dm
index cd26482bf6c8a..2acedcf00f093 100644
--- a/code/modules/paperwork/paperwork.dm
+++ b/code/modules/paperwork/paperwork.dm
@@ -44,7 +44,7 @@
if(.)
return
- if(stamped || istype(attacking_item, /obj/item/stamp))
+ if(stamped || !istype(attacking_item, /obj/item/stamp))
return
if(istype(attacking_item, stamp_requested))
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index b72a232017029..1c54aefa269dc 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -179,7 +179,7 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks())
return data
-/obj/machinery/photocopier/ui_act(action, list/params)
+/obj/machinery/photocopier/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/photography/camera/silicon_camera.dm b/code/modules/photography/camera/silicon_camera.dm
index 9cdbee1bc2b7a..a8bf7a3ba90e7 100644
--- a/code/modules/photography/camera/silicon_camera.dm
+++ b/code/modules/photography/camera/silicon_camera.dm
@@ -7,7 +7,7 @@
/// Checks if we can take a picture at this moment. Returns TRUE if we can, FALSE if we can't.
/obj/item/camera/siliconcam/proc/can_take_picture(mob/living/silicon/clicker)
- if(clicker.stat != CONSCIOUS || clicker.incapacitated())
+ if(clicker.stat != CONSCIOUS || clicker.incapacitated)
return FALSE
return TRUE
diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm
index b009c5b2e7913..342abb1625c5a 100644
--- a/code/modules/photography/photos/photo.dm
+++ b/code/modules/photography/photos/photo.dm
@@ -9,12 +9,21 @@
w_class = WEIGHT_CLASS_TINY
resistance_flags = FLAMMABLE
max_integrity = 50
+ drop_sound = 'sound/items/handling/paper_drop.ogg'
+ pickup_sound = 'sound/items/handling/paper_pickup.ogg'
grind_results = list(/datum/reagent/iodine = 4)
var/datum/picture/picture
var/scribble //Scribble on the back.
/obj/item/photo/Initialize(mapload, datum/picture/P, datum_name = TRUE, datum_desc = TRUE)
set_picture(P, datum_name, datum_desc, TRUE)
+ //Photos are quite rarer than papers, so they're more likely to be added to the queue to make things even.
+ if(!mapload && prob(MESSAGE_BOTTLE_CHANCE * 5) && picture?.id)
+ LAZYADD(SSpersistence.queued_message_bottles, src)
+ return ..()
+
+/obj/item/photo/Destroy()
+ LAZYREMOVE(SSpersistence.queued_message_bottles, src)
return ..()
/obj/item/photo/proc/set_picture(datum/picture/P, setname, setdesc, name_override = FALSE)
@@ -104,7 +113,7 @@
var/n_name = tgui_input_text(usr, "What would you like to label the photo?", "Photo Labelling", max_length = MAX_NAME_LEN)
//loc.loc check is for making possible renaming photos in clipboards
- if(n_name && (loc == usr || loc.loc && loc.loc == usr) && usr.stat == CONSCIOUS && !usr.incapacitated())
+ if(n_name && (loc == usr || loc.loc && loc.loc == usr) && usr.stat == CONSCIOUS && !usr.incapacitated)
name = "photo[(n_name ? "- '[n_name]'" : null)]"
add_fingerprint(usr)
diff --git a/code/modules/plumbing/plumbers/acclimator.dm b/code/modules/plumbing/plumbers/acclimator.dm
index 014ff8499018d..51300af110b01 100644
--- a/code/modules/plumbing/plumbers/acclimator.dm
+++ b/code/modules/plumbing/plumbers/acclimator.dm
@@ -88,7 +88,7 @@
data["emptying"] = emptying
return data
-/obj/machinery/plumbing/acclimator/ui_act(action, params)
+/obj/machinery/plumbing/acclimator/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/plumbing/plumbers/pill_press.dm b/code/modules/plumbing/plumbers/pill_press.dm
index 2f2528a1765c1..23a7c7b03e54f 100644
--- a/code/modules/plumbing/plumbers/pill_press.dm
+++ b/code/modules/plumbing/plumbers/pill_press.dm
@@ -136,7 +136,7 @@
return data
-/obj/machinery/plumbing/pill_press/ui_act(action, params)
+/obj/machinery/plumbing/pill_press/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/plumbing/plumbers/splitters.dm b/code/modules/plumbing/plumbers/splitters.dm
index b87a07d694cc4..c2f9216c92b90 100644
--- a/code/modules/plumbing/plumbers/splitters.dm
+++ b/code/modules/plumbing/plumbers/splitters.dm
@@ -32,7 +32,7 @@
data["max_transfer"] = max_transfer
return data
-/obj/machinery/plumbing/splitter/ui_act(action, params)
+/obj/machinery/plumbing/splitter/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/plumbing/plumbers/synthesizer.dm b/code/modules/plumbing/plumbers/synthesizer.dm
index 0399ad85f3c04..ed4121d6ad02a 100644
--- a/code/modules/plumbing/plumbers/synthesizer.dm
+++ b/code/modules/plumbing/plumbers/synthesizer.dm
@@ -89,7 +89,7 @@
.["current_reagent"] = initial(reagent_id.name)
-/obj/machinery/plumbing/synthesizer/ui_act(action, params)
+/obj/machinery/plumbing/synthesizer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/point/point.dm b/code/modules/point/point.dm
index 6e61b1154d59c..681fbce2c6bac 100644
--- a/code/modules/point/point.dm
+++ b/code/modules/point/point.dm
@@ -7,22 +7,30 @@
*
* Not intended as a replacement for the mob verb
*/
-/atom/movable/proc/point_at(atom/pointed_atom)
+/atom/movable/proc/point_at(atom/pointed_atom, intentional = FALSE)
if(!isturf(loc))
- return
+ return FALSE
if (pointed_atom in src)
create_point_bubble(pointed_atom)
- return
+ return FALSE
var/turf/tile = get_turf(pointed_atom)
if (!tile)
- return
+ return FALSE
var/turf/our_tile = get_turf(src)
var/obj/visual = new /obj/effect/temp_visual/point(our_tile, invisibility)
+ SEND_SIGNAL(src, COMSIG_MOVABLE_POINTED, pointed_atom, visual, intentional)
+
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)
+ return TRUE
+
+/mob/point_at(atom/pointed_atom, intentional = FALSE)
+ . = ..()
+ if(.)
+ face_atom(pointed_atom)
/atom/movable/proc/create_point_bubble(atom/pointed_atom)
var/mutable_appearance/thought_bubble = mutable_appearance(
@@ -109,7 +117,6 @@
if(client && !(pointing_at in view(client.view, src)))
return FALSE
- point_at(pointing_at)
+ point_at(pointing_at, TRUE)
- SEND_SIGNAL(src, COMSIG_MOB_POINTED, pointing_at)
return TRUE
diff --git a/code/modules/power/apc/apc_main.dm b/code/modules/power/apc/apc_main.dm
index 481ccde663b72..b0c5035a1f845 100644
--- a/code/modules/power/apc/apc_main.dm
+++ b/code/modules/power/apc/apc_main.dm
@@ -444,16 +444,17 @@
if(!QDELETED(remote_control_user) && user == remote_control_user)
. = UI_INTERACTIVE
-/obj/machinery/power/apc/ui_act(action, params)
+/obj/machinery/power/apc/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
+ var/mob/user = ui.user
- if(. || !can_use(usr, 1) || (locked && !HAS_SILICON_ACCESS(usr) && !failure_timer && action != "toggle_nightshift"))
+ if(. || !can_use(user, 1) || (locked && !HAS_SILICON_ACCESS(user) && !failure_timer && action != "toggle_nightshift"))
return
switch(action)
if("lock")
- if(HAS_SILICON_ACCESS(usr))
+ if(HAS_SILICON_ACCESS(user))
if((obj_flags & EMAGGED) || (machine_stat & (BROKEN|MAINT)) || remote_control_user)
- to_chat(usr, span_warning("The APC does not respond to the command!"))
+ to_chat(user, span_warning("The APC does not respond to the command!"))
else
locked = !locked
update_appearance()
@@ -462,10 +463,10 @@
coverlocked = !coverlocked
. = TRUE
if("breaker")
- toggle_breaker(usr)
+ toggle_breaker(user)
. = TRUE
if("toggle_nightshift")
- toggle_nightshift_lights(usr)
+ toggle_nightshift_lights(user)
. = TRUE
if("charge")
chargemode = !chargemode
@@ -488,17 +489,17 @@
update()
. = TRUE
if("overload")
- if(HAS_SILICON_ACCESS(usr))
+ if(HAS_SILICON_ACCESS(user))
overload_lighting()
. = TRUE
if("hack")
- if(get_malf_status(usr))
- malfhack(usr)
+ if(get_malf_status(user))
+ malfhack(user)
if("occupy")
- if(get_malf_status(usr))
- malfoccupy(usr)
+ if(get_malf_status(user))
+ malfoccupy(user)
if("deoccupy")
- if(get_malf_status(usr))
+ if(get_malf_status(user))
malfvacate()
if("reboot")
failure_timer = 0
@@ -684,7 +685,7 @@
/obj/machinery/power/apc/proc/overload_lighting()
if(!operating || shorted)
return
- if(cell && cell.use(0.02 * STANDARD_CELL_CHARGE))
+ if(cell && cell.use(0.02 * STANDARD_BATTERY_CHARGE))
INVOKE_ASYNC(src, PROC_REF(break_lights))
/obj/machinery/power/apc/proc/break_lights()
diff --git a/code/modules/power/apc/apc_tool_act.dm b/code/modules/power/apc/apc_tool_act.dm
index 8e4d51a703da6..9d7c008c6165c 100644
--- a/code/modules/power/apc/apc_tool_act.dm
+++ b/code/modules/power/apc/apc_tool_act.dm
@@ -110,7 +110,7 @@
if(isnull(choice) \
|| !user.is_holding(installing_cable) \
|| !user.Adjacent(src) \
- || user.incapacitated() \
+ || user.incapacitated \
|| !can_place_terminal(user, installing_cable, silent = TRUE) \
)
return ITEM_INTERACT_BLOCKING
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index 65b4f01722959..f68319f4205fb 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -497,7 +497,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri
if(!ISADVANCEDTOOLUSER(user))
to_chat(user, span_warning("You don't have the dexterity to do this!"))
return FALSE
- if(user.incapacitated() || !user.Adjacent(src))
+ if(user.incapacitated || !user.Adjacent(src))
return FALSE
return TRUE
@@ -581,8 +581,9 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri
if(isnull(affecting) || !IS_ROBOTIC_LIMB(affecting))
return NONE
- if (!affecting.get_damage())
- return
+ if (!affecting.burn_dam)
+ balloon_alert(user, "limb not damaged")
+ return ITEM_INTERACT_BLOCKING
user.visible_message(span_notice("[user] starts to fix some of the wires in [attacked_humanoid == user ? user.p_their() : "[attacked_humanoid]'s"] [affecting.name]."),
span_notice("You start fixing some of the wires in [attacked_humanoid == user ? "your" : "[attacked_humanoid]'s"] [affecting.name]."))
@@ -766,7 +767,7 @@ GLOBAL_LIST(hub_radial_layer_list)
if(!ISADVANCEDTOOLUSER(user))
to_chat(user, span_warning("You don't have the dexterity to do this!"))
return FALSE
- if(user.incapacitated() || !user.Adjacent(src))
+ if(user.incapacitated || !user.Adjacent(src))
return FALSE
return TRUE
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index fbb36703cc569..addb8cdb6b835 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -20,6 +20,11 @@
custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*7, /datum/material/glass=SMALL_MATERIAL_AMOUNT*0.5)
grind_results = list(/datum/reagent/lithium = 15, /datum/reagent/iron = 5, /datum/reagent/silicon = 5)
+/obj/item/stock_parts/power_store/cell/Initialize(mapload)
+ . = ..()
+ ADD_TRAIT(src, TRAIT_FISHING_BAIT, INNATE_TRAIT)
+ ADD_TRAIT(src, TRAIT_POISONOUS_BAIT, INNATE_TRAIT) //bro is fishing using lithium...
+
/* Cell variants*/
/obj/item/stock_parts/power_store/cell/empty
empty = TRUE
@@ -221,9 +226,6 @@
custom_materials = null
grind_results = null
-/obj/item/stock_parts/power_store/cell/inducer_supply
- maxcharge = STANDARD_CELL_CHARGE * 5
-
/obj/item/stock_parts/power_store/cell/ethereal
name = "ahelp it"
desc = "you sohuldn't see this"
diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm
index ecab6e4eee9a1..4cfce3c5bc90a 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -289,7 +289,7 @@ GLOBAL_LIST_EMPTY(gravity_generators)
return data
-/obj/machinery/gravity_generator/main/ui_act(action, params)
+/obj/machinery/gravity_generator/main/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/power/pipecleaners.dm b/code/modules/power/pipecleaners.dm
index 4c91301978940..4700004904796 100644
--- a/code/modules/power/pipecleaners.dm
+++ b/code/modules/power/pipecleaners.dm
@@ -233,7 +233,7 @@ By design, d1 is the smallest direction and d2 is the highest
return FALSE
if(!user.is_holding(src))
return FALSE
- if(user.incapacitated())
+ if(user.incapacitated)
return FALSE
return TRUE
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index c5353ce62d537..e27ea98f8ca5f 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -10,7 +10,7 @@
use_power = NO_POWER_USE
var/active = FALSE
- var/power_gen = 5000
+ var/power_gen = 5 KILO JOULES
var/power_output = 1
var/consumption = 0
var/datum/looping_sound/generator/soundloop
@@ -81,13 +81,13 @@
/obj/machinery/power/port_gen/pacman
name = "\improper P.A.C.M.A.N.-type portable generator"
circuit = /obj/item/circuitboard/machine/pacman
- power_gen = 5000
+ power_gen = 10 KILO JOULES
var/sheets = 0
var/max_sheets = 50
var/sheet_name = ""
var/sheet_path = /obj/item/stack/sheet/mineral/plasma
var/sheet_left = 0 // How much is left of the sheet
- var/time_per_sheet = 60
+ var/time_per_sheet = 180
var/current_heat = 0
/obj/machinery/power/port_gen/pacman/Initialize(mapload)
@@ -108,8 +108,8 @@
icon_state = "portgen1_0"
base_icon_state = "portgen1"
max_sheets = 20
- time_per_sheet = 20
- power_gen = 15000
+ time_per_sheet = 60
+ power_gen = 30 KILO JOULES
sheet_path = /obj/item/stack/sheet/mineral/uranium
/obj/machinery/power/port_gen/pacman/examine(mob/user)
@@ -246,7 +246,7 @@
data["current_heat"] = current_heat
. = data
-/obj/machinery/power/port_gen/pacman/ui_act(action, params)
+/obj/machinery/power/port_gen/pacman/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -274,8 +274,8 @@
icon_state = "portgen1_0"
base_icon_state = "portgen1"
max_sheets = 20
- time_per_sheet = 20
- power_gen = 15000
+ time_per_sheet = 60
+ power_gen = 30 KILO JOULES
sheet_path = /obj/item/stack/sheet/mineral/uranium
/obj/machinery/power/port_gen/pacman/pre_loaded
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 562bf4c0825cd..b288fd6aa87cd 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -421,7 +421,7 @@
. = ..()
/obj/machinery/power/emitter/prototype/user_buckle_mob(mob/living/buckled_mob, mob/user, check_loc = TRUE)
- if(user.incapacitated() || !istype(user))
+ if(user.incapacitated || !istype(user))
return
for(var/atom/movable/atom in get_turf(src))
if(atom.density && (atom != src && atom != buckled_mob))
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 935601b834bc3..f74a93e263da4 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -121,7 +121,7 @@
if(isnull(choice) \
|| !user.is_holding(item) \
|| !user.Adjacent(src) \
- || user.incapacitated() \
+ || user.incapacitated \
|| !can_place_terminal(user, item, silent = TRUE) \
)
return
@@ -366,7 +366,7 @@
)
return data
-/obj/machinery/power/smes/ui_act(action, params)
+/obj/machinery/power/smes/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 370140a4f74cd..cd36823a207e9 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -486,7 +486,7 @@
data["history"] = history
return data
-/obj/machinery/power/solar_control/ui_act(action, params)
+/obj/machinery/power/solar_control/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/power/supermatter/supermatter_extra_effects.dm b/code/modules/power/supermatter/supermatter_extra_effects.dm
index 35c96d298dd34..b6cc1b792bdcf 100644
--- a/code/modules/power/supermatter/supermatter_extra_effects.dm
+++ b/code/modules/power/supermatter/supermatter_extra_effects.dm
@@ -173,7 +173,7 @@
if(VORTEX_ANOMALY)
new /obj/effect/anomaly/bhole(local_turf, 20, FALSE)
if(BIOSCRAMBLER_ANOMALY)
- new /obj/effect/anomaly/bioscrambler(local_turf, null, FALSE)
+ new /obj/effect/anomaly/bioscrambler/docile(local_turf, null, FALSE)
#undef CHANCE_EQUATION_SLOPE
#undef INTEGRITY_EXPONENTIAL_DEGREE
diff --git a/code/modules/power/turbine/turbine_computer.dm b/code/modules/power/turbine/turbine_computer.dm
index f983e11c1f128..2ad777edd6228 100644
--- a/code/modules/power/turbine/turbine_computer.dm
+++ b/code/modules/power/turbine/turbine_computer.dm
@@ -68,7 +68,7 @@
return data
-/obj/machinery/computer/turbine_computer/ui_act(action, params)
+/obj/machinery/computer/turbine_computer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm
index 45e09db624caf..42751441fca4f 100644
--- a/code/modules/projectiles/ammunition/_ammunition.dm
+++ b/code/modules/projectiles/ammunition/_ammunition.dm
@@ -32,6 +32,12 @@
var/firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect
///pacifism check for boolet, set to FALSE if bullet is non-lethal
var/harmful = TRUE
+ ///If set to true or false, this ammunition can or cannot misfire, regardless the gun can_misfire setting
+ var/can_misfire = null
+ ///This is how much misfire probability is added to the gun when it fires this casing.
+ var/misfire_increment = 0
+ ///If set, this casing will damage any gun it's fired from by the specified amount
+ var/integrity_damage = 0
/obj/item/ammo_casing/spent
name = "spent bullet casing"
diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm
index e2afc1bd67e7f..282c722b169e6 100644
--- a/code/modules/projectiles/ammunition/_firing.dm
+++ b/code/modules/projectiles/ammunition/_firing.dm
@@ -52,12 +52,19 @@
loaded_projectile.suppressed = quiet
if(isgun(fired_from))
- var/obj/item/gun/G = fired_from
- loaded_projectile.damage *= G.projectile_damage_multiplier
- loaded_projectile.stamina *= G.projectile_damage_multiplier
+ var/obj/item/gun/gun = fired_from
- loaded_projectile.wound_bonus += G.projectile_wound_bonus
- loaded_projectile.bare_wound_bonus += G.projectile_wound_bonus
+ var/integrity_mult = 0.5 + gun.get_integrity_percentage() * 0.5
+ if(integrity_mult >= 0.95) //Guns that are only mildly smudged don't debuff projectiles.
+ integrity_mult = 1
+
+ loaded_projectile.damage *= gun.projectile_damage_multiplier * integrity_mult
+ loaded_projectile.stamina *= gun.projectile_damage_multiplier * integrity_mult
+
+ loaded_projectile.wound_bonus += gun.projectile_wound_bonus
+ loaded_projectile.wound_bonus *= loaded_projectile.wound_bonus >= 0 ? 1 : 2 - integrity_mult
+ loaded_projectile.bare_wound_bonus += gun.projectile_wound_bonus
+ loaded_projectile.bare_wound_bonus *= loaded_projectile.bare_wound_bonus >= 0 ? 1 : 2 - integrity_mult
if(tk_firing(user, fired_from))
loaded_projectile.ignore_source_check = TRUE
diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
index b7cda3e93e1a8..84c75ed24935e 100644
--- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm
+++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
@@ -82,6 +82,20 @@
pellets = 6
variance = 25
+/obj/item/ammo_casing/shotgun/buckshot/old
+ projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot/old
+ can_misfire = TRUE
+ misfire_increment = 2
+ integrity_damage = 4
+
+/obj/item/ammo_casing/shotgun/buckshot/old/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from)
+ . = ..()
+ if(!fired_from)
+ return
+
+ var/datum/effect_system/fluid_spread/smoke/smoke = new
+ smoke.set_up(0, holder = fired_from, location = fired_from)
+
/obj/item/ammo_casing/shotgun/buckshot/spent
projectile_type = null
diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm
index 0b1623e9877ab..a77dcfec663b1 100644
--- a/code/modules/projectiles/ammunition/energy/laser.dm
+++ b/code/modules/projectiles/ammunition/energy/laser.dm
@@ -53,6 +53,7 @@
/obj/item/ammo_casing/energy/chameleon
projectile_type = /obj/projectile/energy/chameleon
e_cost = 0 // Can't really use the macro here, unfortunately
+ harmful = FALSE
var/projectile_vars = list()
/obj/item/ammo_casing/energy/chameleon/ready_proj()
diff --git a/code/modules/projectiles/boxes_magazines/internal/rifle.dm b/code/modules/projectiles/boxes_magazines/internal/rifle.dm
index b092e207c10d6..b1f761831ee62 100644
--- a/code/modules/projectiles/boxes_magazines/internal/rifle.dm
+++ b/code/modules/projectiles/boxes_magazines/internal/rifle.dm
@@ -60,5 +60,5 @@
/obj/item/ammo_box/magazine/internal/boltaction/rebarxbow/syndie
max_ammo = 3
caliber = CALIBER_REBAR_SYNDIE
- ammo_type = /obj/item/ammo_casing/rebar
+ ammo_type = /obj/item/ammo_casing/rebar/syndie
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 1452d879799fa..190f9e1a7aca8 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -153,6 +153,15 @@
else
. += "It doesn't have a firing pin installed, and won't fire."
+ var/healthpercent = (atom_integrity/max_integrity) * 100
+ switch(healthpercent)
+ if(60 to 95)
+ . += span_info("It looks slightly damaged.")
+ if(25 to 60)
+ . += span_warning("It appears heavily damaged.")
+ if(0 to 25)
+ . += span_boldwarning("It's falling apart!")
+
//called after the gun has successfully fired its chambered ammo.
/obj/item/gun/proc/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE)
handle_chamber(empty_chamber, from_firing, chamber_next_round)
@@ -179,36 +188,48 @@
else
playsound(src, fire_sound, fire_sound_volume, vary_fire_sound)
-/obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1)
+/obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = FALSE, atom/pbtarget = null, message = TRUE)
if(recoil && !tk_firing(user))
shake_camera(user, recoil + 1, recoil)
fire_sounds()
- if(!suppressed)
- if(message)
- if(tk_firing(user))
- visible_message(
- span_danger("[src] fires itself[pointblank ? " point blank at [pbtarget]!" : "!"]"),
- blind_message = span_hear("You hear a gunshot!"),
- vision_distance = COMBAT_MESSAGE_RANGE
- )
- else if(pointblank)
- user.visible_message(
- span_danger("[user] fires [src] point blank at [pbtarget]!"),
- span_danger("You fire [src] point blank at [pbtarget]!"),
- span_hear("You hear a gunshot!"), COMBAT_MESSAGE_RANGE, pbtarget
- )
- to_chat(pbtarget, span_userdanger("[user] fires [src] point blank at you!"))
- if(pb_knockback > 0 && ismob(pbtarget))
- var/mob/PBT = pbtarget
- var/atom/throw_target = get_edge_target_turf(PBT, user.dir)
- PBT.throw_at(throw_target, pb_knockback, 2)
- else if(!tk_firing(user))
- user.visible_message(
- span_danger("[user] fires [src]!"),
- blind_message = span_hear("You hear a gunshot!"),
- vision_distance = COMBAT_MESSAGE_RANGE,
- ignored_mobs = user
- )
+ if(suppressed || !message)
+ return
+ if(tk_firing(user))
+ visible_message(
+ span_danger("[src] fires itself[pointblank ? " point blank at [pbtarget]!" : "!"]"),
+ blind_message = span_hear("You hear a gunshot!"),
+ vision_distance = COMBAT_MESSAGE_RANGE
+ )
+ else if(pointblank)
+ user.visible_message(
+ span_danger("[user] fires [src] point blank at [pbtarget]!"),
+ span_danger("You fire [src] point blank at [pbtarget]!"),
+ span_hear("You hear a gunshot!"), COMBAT_MESSAGE_RANGE, pbtarget
+ )
+ to_chat(pbtarget, span_userdanger("[user] fires [src] point blank at you!"))
+ if(pb_knockback > 0 && ismob(pbtarget))
+ var/mob/PBT = pbtarget
+ var/atom/throw_target = get_edge_target_turf(PBT, user.dir)
+ PBT.throw_at(throw_target, pb_knockback, 2)
+ else if(!tk_firing(user))
+ user.visible_message(
+ span_danger("[user] fires [src]!"),
+ blind_message = span_hear("You hear a gunshot!"),
+ vision_distance = COMBAT_MESSAGE_RANGE,
+ ignored_mobs = user
+ )
+
+ if(chambered?.integrity_damage)
+ take_damage(chambered.integrity_damage, sound_effect = FALSE)
+
+/obj/item/gun/atom_destruction(damage_flag)
+ if(!isliving(loc))
+ return ..()
+ var/mob/living/holder = loc
+ if(holder.is_holding(src) && holder.stat < UNCONSCIOUS)
+ to_chat(holder, span_boldwarning("[src] breaks down!"))
+ holder.playsound_local(get_turf(src), 'sound/weapons/smash.ogg', 50, TRUE)
+ return ..()
/obj/item/gun/emp_act(severity)
. = ..()
@@ -403,9 +424,9 @@
return FALSE
else
if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot
- shoot_live_shot(user, 1, target, message)
+ shoot_live_shot(user, TRUE, target, message)
else
- shoot_live_shot(user, 0, target, message)
+ shoot_live_shot(user, FALSE, target, message)
if (iteration >= burst_size)
firing_burst = FALSE
else
@@ -459,9 +480,9 @@
return
else
if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot
- shoot_live_shot(user, 1, target, message)
+ shoot_live_shot(user, TRUE, target, message)
else
- shoot_live_shot(user, 0, target, message)
+ shoot_live_shot(user, FALSE, target, message)
else
shoot_with_empty_chamber(user)
return
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 8a8b4dbacfccc..2d77185f1d255 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -7,6 +7,7 @@
w_class = WEIGHT_CLASS_NORMAL
pickup_sound = 'sound/items/gun_pick_up.ogg'
drop_sound = 'sound/items/gun_drop.ogg'
+ sound_vary = TRUE
///sound when inserting magazine
var/load_sound = 'sound/weapons/gun/general/magazine_insert_full.ogg'
@@ -451,7 +452,7 @@
if (sawoff(user, A))
return
- if(can_misfire && istype(A, /obj/item/stack/sheet/cloth))
+ if(misfire_probability && istype(A, /obj/item/stack/sheet/cloth))
if(guncleaning(user, A))
return
@@ -463,7 +464,8 @@
return TRUE
/obj/item/gun/ballistic/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
- if(target != user && chambered.loaded_projectile && can_misfire && prob(misfire_probability) && blow_up(user))
+ var/could_it_misfire = (can_misfire && chambered.can_misfire != FALSE) || chambered.can_misfire
+ if(target != user && chambered.loaded_projectile && could_it_misfire && prob(misfire_probability) && blow_up(user))
to_chat(user, span_userdanger("[src] misfires!"))
return
@@ -473,9 +475,14 @@
return ..()
/obj/item/gun/ballistic/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1)
- if(can_misfire)
+ if(isnull(chambered))
+ return ..()
+ if(can_misfire && chambered.can_misfire != FALSE)
misfire_probability += misfire_percentage_increment
misfire_probability = clamp(misfire_probability, 0, misfire_probability_cap)
+ if(chambered.can_misfire)
+ misfire_probability += chambered.misfire_increment
+ misfire_probability = clamp(misfire_probability, 0, misfire_probability_cap)
return ..()
///Installs a new suppressor, assumes that the suppressor is already in the contents of src
@@ -579,6 +586,9 @@
. += span_danger("You get the feeling this might explode if you fire it...")
if(misfire_probability > 0)
. += span_danger("Given the state of the gun, there is a [misfire_probability]% chance it'll misfire.")
+ else if(misfire_probability > 0)
+ . += span_warning("You get a feeling this might explode if you fire it with the wrong ammunitions...")
+ . += span_warning("Given the state of the gun, there is a [EXAMINE_HINT("[misfire_probability]%")] chance it'll misfire.")
///Gets the number of bullets in the gun
/obj/item/gun/ballistic/proc/get_ammo(countchambered = TRUE)
diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm
index 024f8353ddb48..888b784ddf86c 100644
--- a/code/modules/projectiles/guns/ballistic/rifle.dm
+++ b/code/modules/projectiles/guns/ballistic/rifle.dm
@@ -193,18 +193,17 @@
/obj/item/gun/ballistic/rifle/rebarxbow
name = "Heated Rebar Crossbow"
- desc = "Made from an inducer, iron rods, and some wire, this crossbow fires sharpened iron rods, made from the plentiful iron rods found stationwide. \
- Additionally, can fire specialty ammo made from the materials in the atmos crystalizer - zaukerite, metallic hydrogen, and healium crytals all work. \
- Very slow to reload - you can craft the crossbow with a crowbar to try loosen the crossbar, but risks a misfire, or worse..."
+ desc = "A handcrafted crossbow. \
+ Aside from conventional sharpened iron rods, it can also fire specialty ammo made from the atmos crystalizer - zaukerite, metallic hydrogen, and healium rods all work. \
+ Very slow to reload - you can craft the crossbow with a crowbar to loosen the crossbar, but risk a misfire, or worse..."
icon = 'icons/obj/weapons/guns/ballistic.dmi'
icon_state = "rebarxbow"
inhand_icon_state = "rebarxbow"
worn_icon_state = "rebarxbow"
rack_sound = 'sound/weapons/gun/sniper/rack.ogg'
- must_hold_to_load = TRUE
mag_display = FALSE
empty_indicator = TRUE
- bolt_type = BOLT_TYPE_LOCKING
+ bolt_type = BOLT_TYPE_OPEN
semi_auto = FALSE
internal_magazine = TRUE
can_modify_ammo = FALSE
@@ -212,7 +211,6 @@
bolt_wording = "bowstring"
magazine_wording = "rod"
cartridge_wording = "rod"
- misfire_probability = 25
weapon_weight = WEAPON_HEAVY
initial_caliber = CALIBER_REBAR
accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/rebarxbow/normal
@@ -250,10 +248,22 @@
return FALSE
return ..()
+/obj/item/gun/ballistic/rifle/rebarxbow/shoot_with_empty_chamber(mob/living/user)
+ if(chambered || !magazine || !length(magazine.contents))
+ return ..()
+ drop_bolt(user)
+
/obj/item/gun/ballistic/rifle/rebarxbow/examine(mob/user)
. = ..()
. += "The crossbow is [bolt_locked ? "not ready" : "ready"] to fire."
+/obj/item/gun/ballistic/rifle/rebarxbow/update_overlays()
+ . = ..()
+ if(!magazine)
+ . += "[initial(icon_state)]" + "_empty"
+ if(!bolt_locked)
+ . += "[initial(icon_state)]" + "_bolt_locked"
+
/obj/item/gun/ballistic/rifle/rebarxbow/forced
name = "Stressed Rebar Crossbow"
desc = "Some idiot decided that they would risk shooting themselves in the face if it meant they could have a draw this crossbow a bit faster. Hopefully, it was worth it."
@@ -266,7 +276,7 @@
/obj/item/gun/ballistic/rifle/rebarxbow/syndie
name = "Syndicate Rebar Crossbow"
desc = "The syndicate liked the bootleg rebar crossbow NT engineers made, so they showed what it could be if properly developed. \
- Holds three shots without a chance of exploding, and features a built in scope. Compatable with all known crossbow ammunition."
+ Holds three shots without a chance of exploding, and features a built in scope. Compatible with all known crossbow ammunition."
icon_state = "rebarxbowsyndie"
inhand_icon_state = "rebarxbowsyndie"
worn_icon_state = "rebarxbowsyndie"
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 9f854926dbdff..9be59ffb5344b 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -24,6 +24,7 @@
cartridge_wording = "shell"
tac_reloads = FALSE
weapon_weight = WEAPON_HEAVY
+ misfire_probability_cap = 35 // Even if the misfire probability and increment are both zero, we've some shots that may do that.
pb_knockback = 2
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 9c16133e1ea35..39e55f94fca17 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -5,6 +5,7 @@
icon = 'icons/obj/weapons/guns/energy.dmi'
pickup_sound = 'sound/items/gun_pick_up.ogg'
drop_sound = 'sound/items/gun_drop.ogg'
+ sound_vary = TRUE
/// What type of power cell this uses
var/obj/item/stock_parts/power_store/cell
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index 53cbe825085b2..1180a90e8d217 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -123,7 +123,7 @@
/obj/item/gun/energy/recharge/kinetic_accelerator/proc/check_menu(mob/living/carbon/human/user)
if(!istype(user))
return FALSE
- if(user.incapacitated())
+ if(user.incapacitated)
return FALSE
return TRUE
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index c501f15db90e6..5e06f115acea3 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -209,6 +209,10 @@
var/wound_falloff_tile
///How much we want to drop the embed_chance value, if we can embed, per tile, for falloff purposes
var/embed_falloff_tile
+ ///How much accuracy is lost for each tile travelled
+ var/accuracy_falloff = 7
+ ///How much accuracy before falloff starts to matter. Formula is range - falloff * tiles travelled
+ var/accurate_range = 100
var/static/list/projectile_connections = list(COMSIG_ATOM_ENTERED = PROC_REF(on_entered))
/// If true directly targeted turfs can be hit
var/can_hit_turfs = FALSE
@@ -296,6 +300,12 @@
hitx = target.pixel_x + rand(-8, 8)
hity = target.pixel_y + rand(-8, 8)
+ if(isturf(target) && hitsound_wall)
+ var/volume = clamp(vol_by_damage() + 20, 0, 100)
+ if(suppressed)
+ volume = 5
+ playsound(loc, hitsound_wall, volume, TRUE, -1)
+
if(damage > 0 && (damage_type == BRUTE || damage_type == BURN) && iswallturf(target_turf) && prob(75))
var/turf/closed/wall/target_wall = target_turf
if(impact_effect_type && !hitscan)
@@ -308,11 +318,7 @@
if(!isliving(target))
if(impact_effect_type && !hitscan)
new impact_effect_type(target_turf, hitx, hity)
- if(isturf(target) && hitsound_wall)
- var/volume = clamp(vol_by_damage() + 20, 0, 100)
- if(suppressed)
- volume = 5
- playsound(loc, hitsound_wall, volume, TRUE, -1)
+
return BULLET_ACT_HIT
var/mob/living/living_target = target
@@ -450,9 +456,8 @@
store_hitscan_collision(point_cache)
return TRUE
- if(!HAS_TRAIT(src, TRAIT_ALWAYS_HIT_ZONE))
- var/distance = get_dist(T, starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations.
- def_zone = ran_zone(def_zone, max(100-(7*distance), 5)) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use.
+ var/distance = get_dist(T, starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations.
+ def_zone = ran_zone(def_zone, clamp(accurate_range - (accuracy_falloff * distance), 5, 100)) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use.
return process_hit(T, select_target(T, A, A), A) // SELECT TARGET FIRST!
@@ -569,6 +574,9 @@
if((target.pass_flags_self & pass_flags) && !direct_target)
return FALSE
if(HAS_TRAIT(target, TRAIT_UNHITTABLE_BY_PROJECTILES))
+ if(!HAS_TRAIT(target, TRAIT_BLOCKING_PROJECTILES) && isliving(target))
+ var/mob/living/living_target = target
+ living_target.block_projectile_effects()
return FALSE
if(!ignore_source_check && firer)
var/mob/M = firer
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index 542c2aaa35d92..0e50326f1b07c 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -50,13 +50,11 @@
//overclocked laser, does a bit more damage but has much higher wound power (-0 vs -20)
/obj/projectile/beam/laser/hellfire
name = "hellfire laser"
+ icon_state = "hellfire"
wound_bonus = 0
damage = 30
speed = 0.6 // higher power = faster, that's how light works right
-
-/obj/projectile/beam/laser/hellfire/Initialize(mapload)
- . = ..()
- transform *= 2
+ light_color = "#FF969D"
/obj/projectile/beam/laser/heavylaser
name = "heavy laser"
diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm
index 6f14df2f4c8bd..2915e3e59bd6c 100644
--- a/code/modules/projectiles/projectile/bullets/rifle.dm
+++ b/code/modules/projectiles/projectile/bullets/rifle.dm
@@ -140,27 +140,38 @@
/obj/projectile/bullet/rebar/hydrogen
name = "metallic hydrogen bolt"
icon_state = "rebar_hydrogen"
- damage = 40
+ damage = 55
speed = 0.6
+ projectile_piercing = PASSMOB|PASSVEHICLE
+ projectile_phasing = ~(PASSMOB|PASSVEHICLE)
+ phasing_ignore_direct_target = TRUE
dismemberment = 0 //goes through clean.
damage_type = BRUTE
armour_penetration = 30 //very pointy.
- projectile_piercing = PASSMOB //felt this might have been a nice compromise for the lower damage for the difficulty of getting it
wound_bonus = -15
bare_wound_bonus = 10
+ shrapnel_type = /obj/item/ammo_casing/rebar/hydrogen
embed_type = /datum/embed_data/rebar_hydrogen
embed_falloff_tile = -3
shrapnel_type = /obj/item/ammo_casing/rebar/hydrogen
+ accurate_range = 205 //15 tiles before falloff starts to kick in
+
+/obj/projectile/bullet/rebar/hydrogen/Impact(atom/A)
+ . = ..()
+ def_zone = ran_zone(def_zone, clamp(205-(7*get_dist(get_turf(A), starting)), 5, 100))
/datum/embed_data/rebar_hydrogen
- embed_chance = 50
- fall_chance = 2
- jostle_chance = 3
- ignore_throwspeed_threshold = TRUE
- pain_stam_pct = 0.6
- pain_mult = 4
- jostle_pain_mult = 2
- rip_time =18
+ embed_chance = 0
+
+/obj/projectile/bullet/rebar/hydrogen/on_hit(atom/target, blocked, pierce_hit)
+ if(isAI(target))
+ return BULLET_ACT_FORCE_PIERCE
+ return ..()
+
+/obj/projectile/bullet/rebar/hydrogen/process_hit(turf/T, atom/target, atom/bumped, hit_something)
+ . = ..()
+ if(pierces >= 3)
+ qdel(src)
/obj/projectile/bullet/rebar/healium
name = "healium bolt"
diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm
index 7ae5741f3b992..215093c9f100e 100644
--- a/code/modules/projectiles/projectile/bullets/shotgun.dm
+++ b/code/modules/projectiles/projectile/bullets/shotgun.dm
@@ -79,6 +79,15 @@
bare_wound_bonus = 5
wound_falloff_tile = -2.5 // low damage + additional dropoff will already curb wounding potential anything past point blank
+/**
+ * A slightly weaker version of the buckshot, available from the blackmarket.
+ * The casings they're in have a very small chance to misfire and will gradually damage the firearm, making it weaker.
+ */
+/obj/projectile/bullet/pellet/shotgun_buckshot/old
+ damage_falloff_tile = -0.47
+ wound_bonus = -100
+ bare_wound_bonus = -100
+
/obj/projectile/bullet/pellet/shotgun_rubbershot
name = "rubber shot pellet"
damage = 3
diff --git a/code/modules/reagents/chemistry/holder/holder.dm b/code/modules/reagents/chemistry/holder/holder.dm
index 11117142d70e5..f084a7eaa39d4 100644
--- a/code/modules/reagents/chemistry/holder/holder.dm
+++ b/code/modules/reagents/chemistry/holder/holder.dm
@@ -344,26 +344,29 @@
stack_trace("invalid reagent path passed to convert reagent [source_reagent_typepath]")
return FALSE
- var/reagent_amount
- var/reagent_purity
- var/reagent_ph
+ var/reagent_amount = 0
+ var/reagent_purity = 0
+ var/reagent_ph = 0
if(include_source_subtypes)
reagent_ph = ph
var/weighted_purity
var/list/reagent_type_list = typecacheof(source_reagent_typepath)
for(var/datum/reagent/reagent as anything in reagent_list)
- if(reagent.type in reagent_type_list)
+ if(is_type_in_typecache(reagent, reagent_type_list))
weighted_purity += reagent.volume * reagent.purity
reagent_amount += reagent.volume
remove_reagent(reagent.type, reagent.volume * multiplier)
reagent_purity = weighted_purity / reagent_amount
else
var/datum/reagent/source_reagent = has_reagent(source_reagent_typepath)
- reagent_amount = source_reagent.volume
- reagent_purity = source_reagent.purity
- reagent_ph = source_reagent.ph
- remove_reagent(source_reagent_typepath, reagent_amount)
- add_reagent(target_reagent_typepath, reagent_amount * multiplier, reagtemp = chem_temp, added_purity = reagent_purity, added_ph = reagent_ph)
+ if(istype(source_reagent))
+ reagent_amount = source_reagent.volume
+ reagent_purity = source_reagent.purity
+ reagent_ph = source_reagent.ph
+ remove_reagent(source_reagent_typepath, reagent_amount)
+
+ if(reagent_amount > 0)
+ add_reagent(target_reagent_typepath, reagent_amount * multiplier, reagtemp = chem_temp, added_purity = reagent_purity, added_ph = reagent_ph)
/// Removes all reagents
/datum/reagents/proc/clear_reagents()
diff --git a/code/modules/reagents/chemistry/holder/mob_life.dm b/code/modules/reagents/chemistry/holder/mob_life.dm
index 03421f1577098..611de150920e4 100644
--- a/code/modules/reagents/chemistry/holder/mob_life.dm
+++ b/code/modules/reagents/chemistry/holder/mob_life.dm
@@ -1,3 +1,8 @@
+#define HAS_SILENT_TOXIN 0 //don't provide a feedback message if this is the only toxin present
+#define HAS_NO_TOXIN 1
+#define HAS_PAINFUL_TOXIN 2
+#define MAX_TOXIN_LIVER_DAMAGE 2 //the max damage the liver can receive per second (~1 min at max damage will destroy liver)
+
/**
* Triggers metabolizing for all the reagents in this holder
*
@@ -16,16 +21,22 @@
var/need_mob_update = FALSE
var/obj/item/organ/internal/stomach/belly = owner.get_organ_slot(ORGAN_SLOT_STOMACH)
var/obj/item/organ/internal/liver/liver = owner.get_organ_slot(ORGAN_SLOT_LIVER)
- var/liver_tolerance
+ var/liver_tolerance = 0
+ var/liver_damage = 0
+ var/provide_pain_message
+ var/amount
if(liver)
var/liver_health_percent = (liver.maxHealth - liver.damage) / liver.maxHealth
liver_tolerance = liver.toxTolerance * liver_health_percent
+ provide_pain_message = HAS_NO_TOXIN
for(var/datum/reagent/reagent as anything in cached_reagents)
+ var/datum/reagent/toxin/toxin
+ if(istype(reagent, /datum/reagent/toxin))
+ toxin = reagent
// skip metabolizing effects for small units of toxins
- if(istype(reagent, /datum/reagent/toxin) && liver && !dead)
- var/datum/reagent/toxin/toxin = reagent
- var/amount = toxin.volume
+ if(toxin && liver && !dead)
+ amount = toxin.volume
if(belly)
amount += belly.reagents.get_reagent_amount(toxin.type)
@@ -35,10 +46,35 @@
need_mob_update += metabolize_reagent(owner, reagent, seconds_per_tick, times_fired, can_overdose, liverless, dead)
+ // If applicable, calculate any toxin-related liver damage
+ // Note: we have to do this AFTER metabolize_reagent, because we want handle_reagent to run before we make the determination.
+ // The order is really important unfortunately.
+ if(toxin && !liverless && liver && liver.filterToxins && !HAS_TRAIT(owner, TRAIT_TOXINLOVER))
+ if(toxin.affected_organ_flags && !(liver.organ_flags & toxin.affected_organ_flags)) //this particular toxin does not affect this type of organ
+ continue
+
+ // a 15u syringe is a nice baseline to scale lethality by
+ liver_damage += ((amount/15) * toxin.toxpwr * toxin.liver_damage_multiplier) / liver.liver_resistance
+
+ if(provide_pain_message != HAS_PAINFUL_TOXIN)
+ provide_pain_message = toxin.silent_toxin ? HAS_SILENT_TOXIN : HAS_PAINFUL_TOXIN
+
+ // if applicable, apply our liver damage and display the accompanying pain message
+ if(liver_damage)
+ liver.apply_organ_damage(min(liver_damage * seconds_per_tick , MAX_TOXIN_LIVER_DAMAGE * seconds_per_tick))
+
+ if(provide_pain_message && liver.damage > 10 && SPT_PROB(liver.damage/6, seconds_per_tick)) //the higher the damage the higher the probability
+ to_chat(owner, span_warning("You feel a dull pain in your abdomen."))
+
if(owner && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates.
owner.updatehealth()
update_total()
+#undef HAS_SILENT_TOXIN
+#undef HAS_NO_TOXIN
+#undef HAS_PAINFUL_TOXIN
+#undef MAX_TOXIN_LIVER_DAMAGE
+
/*
* Metabolises a single reagent for a target owner carbon mob. See above.
*
diff --git a/code/modules/reagents/chemistry/holder/ui_data.dm b/code/modules/reagents/chemistry/holder/ui_data.dm
index 97820c2fd6c0e..244b264721fd2 100644
--- a/code/modules/reagents/chemistry/holder/ui_data.dm
+++ b/code/modules/reagents/chemistry/holder/ui_data.dm
@@ -297,7 +297,7 @@
var/datum/chemical_reaction/reaction = sub_reactions[ui_reaction_index]
return reaction.type
-/datum/reagents/ui_act(action, params)
+/datum/reagents/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index cf193decb6931..5f665d876afaa 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -572,6 +572,7 @@
/obj/machinery/chem_dispenser/drinks/fullupgrade //fully ugpraded stock parts, emagged
desc = "Contains a large reservoir of soft drinks. This model has had its safeties shorted out."
obj_flags = CAN_BE_HIT | EMAGGED
+ circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks/fullupgrade
/obj/machinery/chem_dispenser/drinks/fullupgrade/Initialize(mapload)
. = ..()
diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm
index dca2b603ca40f..c9ad2424b2de7 100644
--- a/code/modules/reagents/chemistry/machinery/pandemic.dm
+++ b/code/modules/reagents/chemistry/machinery/pandemic.dm
@@ -153,7 +153,7 @@
data["resistances"] = get_resistance_data(blood)
return data
-/obj/machinery/computer/pandemic/ui_act(action, params)
+/obj/machinery/computer/pandemic/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/reagents/chemistry/machinery/portable_chem_mixer.dm b/code/modules/reagents/chemistry/machinery/portable_chem_mixer.dm
index 9c92cc631be79..21f23a209b6b7 100644
--- a/code/modules/reagents/chemistry/machinery/portable_chem_mixer.dm
+++ b/code/modules/reagents/chemistry/machinery/portable_chem_mixer.dm
@@ -1,5 +1,5 @@
/obj/item/storage/portable_chem_mixer
- name = "Portable Chemical Mixer"
+ name = "portable chemical mixer"
desc = "A portable device that dispenses and mixes chemicals using the beakers inserted inside."
icon = 'icons/obj/medical/chemical.dmi'
icon_state = "portablechemicalmixer_open"
@@ -132,10 +132,12 @@
return
beaker = new_beaker
-/obj/item/storage/portable_chem_mixer/ui_interact(mob/user, datum/tgui/ui)
+/obj/item/storage/portable_chem_mixer/ui_status(mob/user, datum/ui_state/state)
if(loc != user)
- balloon_alert(user, "hold it in your hand!")
- return
+ return UI_CLOSE
+ return ..()
+
+/obj/item/storage/portable_chem_mixer/ui_interact(mob/user, datum/tgui/ui)
if(!atom_storage.locked)
balloon_alert(user, "lock it first!")
return
diff --git a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
index 3f5b7e3a24479..da57f6ce405a1 100644
--- a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
@@ -344,6 +344,28 @@
taste_description = "spiked butterscotch"
ph = 6.5
default_container = /obj/item/reagent_containers/cup/glass/bottle/rum
+ chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
+
+/datum/reagent/consumable/ethanol/rum/aged
+ name = "Aged Rum"
+ description = "Sink me! That's some fancy rum to share with buckoos."
+ color = "#c0b675" // rgb: 192,183,117
+ boozepwr = 70
+ taste_description = "extra-spiked butterscotch"
+ default_container = /obj/item/reagent_containers/cup/glass/bottle/rum/aged
+ quality = DRINK_FANTASTIC
+ metabolized_traits = list(TRAIT_STRONG_STOMACH)
+
+/datum/reagent/consumable/ethanol/rum/aged/on_mob_metabolize(mob/living/drinker)
+ . = ..()
+ drinker.add_blocked_language(subtypesof(/datum/language) - /datum/language/piratespeak, LANGUAGE_DRINK)
+ drinker.grant_language(/datum/language/piratespeak, source = LANGUAGE_DRINK)
+
+/datum/reagent/consumable/ethanol/rum/aged/on_mob_end_metabolize(mob/living/drinker)
+ if(!QDELING(drinker))
+ drinker.remove_blocked_language(subtypesof(/datum/language), LANGUAGE_DRINK)
+ drinker.remove_language(/datum/language/piratespeak, source = LANGUAGE_DRINK)
+ return ..()
/datum/reagent/consumable/ethanol/tequila
name = "Tequila"
@@ -2637,7 +2659,7 @@
var/mob/living/carbon/exposed_carbon = exposed_mob
var/obj/item/organ/internal/stomach/ethereal/stomach = exposed_carbon.get_organ_slot(ORGAN_SLOT_STOMACH)
if(istype(stomach))
- stomach.adjust_charge(reac_volume * 0.003 * STANDARD_CELL_CHARGE)
+ stomach.adjust_charge(reac_volume * 0.003 * ETHEREAL_CHARGE_NORMAL)
/datum/reagent/consumable/ethanol/telepole
name = "Telepole"
@@ -2657,7 +2679,7 @@
var/mob/living/carbon/exposed_carbon = exposed_mob
var/obj/item/organ/internal/stomach/ethereal/stomach = exposed_carbon.get_organ_slot(ORGAN_SLOT_STOMACH)
if(istype(stomach))
- stomach.adjust_charge(reac_volume * 0.002 * STANDARD_CELL_CHARGE)
+ stomach.adjust_charge(reac_volume * 0.002 * ETHEREAL_CHARGE_NORMAL)
/datum/reagent/consumable/ethanol/pod_tesla
name = "Pod Tesla"
@@ -2684,7 +2706,7 @@
var/mob/living/carbon/exposed_carbon = exposed_mob
var/obj/item/organ/internal/stomach/ethereal/stomach = exposed_carbon.get_organ_slot(ORGAN_SLOT_STOMACH)
if(istype(stomach))
- stomach.adjust_charge(reac_volume * 0.005 * STANDARD_CELL_CHARGE)
+ stomach.adjust_charge(reac_volume * 0.005 * ETHEREAL_CHARGE_NORMAL)
// Welcome to the Blue Room Bar and Grill, home to Mars' finest cocktails
/datum/reagent/consumable/ethanol/rice_beer
diff --git a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm
index d3070474558d7..34b2dce4170e6 100644
--- a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm
@@ -650,13 +650,13 @@
. = ..()
affected_mob.adjust_drowsiness(3 SECONDS * REM * seconds_per_tick)
var/need_mob_update
- switch(affected_mob.mob_mood.sanity)
- if (SANITY_INSANE to SANITY_CRAZY)
- need_mob_update = affected_mob.adjustStaminaLoss(3 * REM * seconds_per_tick, updating_stamina = FALSE)
- if (SANITY_UNSTABLE to SANITY_DISTURBED)
- affected_mob.add_mood_event("wellcheers", /datum/mood_event/wellcheers)
- if (SANITY_NEUTRAL to SANITY_GREAT)
+ switch(affected_mob.mob_mood.sanity_level)
+ if (SANITY_LEVEL_GREAT to SANITY_LEVEL_NEUTRAL)
need_mob_update = affected_mob.adjustBruteLoss(-1.5 * REM * seconds_per_tick, updating_health = FALSE)
+ if (SANITY_LEVEL_DISTURBED to SANITY_LEVEL_UNSTABLE)
+ affected_mob.add_mood_event("wellcheers", /datum/mood_event/wellcheers)
+ if (SANITY_LEVEL_CRAZY to SANITY_LEVEL_INSANE)
+ need_mob_update = affected_mob.adjustStaminaLoss(3 * REM * seconds_per_tick, updating_stamina = FALSE)
if(need_mob_update)
return UPDATE_MOB_HEALTH
@@ -1291,4 +1291,4 @@
var/mob/living/carbon/exposed_carbon = exposed_mob
var/obj/item/organ/internal/stomach/ethereal/stomach = exposed_carbon.get_organ_slot(ORGAN_SLOT_STOMACH)
if(istype(stomach))
- stomach.adjust_charge(reac_volume * 0.003 * STANDARD_CELL_CHARGE)
+ stomach.adjust_charge(reac_volume * 0.003 * ETHEREAL_CHARGE_NORMAL)
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index 4f7377d407fec..5365be6fe8d7f 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -949,7 +949,7 @@
var/mob/living/carbon/exposed_carbon = exposed_mob
var/obj/item/organ/internal/stomach/ethereal/stomach = exposed_carbon.get_organ_slot(ORGAN_SLOT_STOMACH)
if(istype(stomach))
- stomach.adjust_charge(reac_volume * 0.03 * STANDARD_CELL_CHARGE)
+ stomach.adjust_charge(reac_volume * 0.03 * ETHEREAL_CHARGE_NORMAL)
/datum/reagent/consumable/liquidelectricity/enriched/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
. = ..()
diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm
index 3a633e5c83679..ce829a6ac1222 100644
--- a/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/impure_reagents/impure_medicine_reagents.dm
@@ -230,7 +230,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
//Just the removed itching mechanism - omage to its origins.
/datum/reagent/inverse/ichiyuri/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
. = ..()
- if(prob(resetting_probability) && !(HAS_TRAIT(affected_mob, TRAIT_RESTRAINED) || affected_mob.incapacitated()))
+ if(prob(resetting_probability) && !(HAS_TRAIT(affected_mob, TRAIT_RESTRAINED) || affected_mob.incapacitated))
. = TRUE
if(spammer < world.time)
to_chat(affected_mob,span_warning("You can't help but itch yourself."))
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index cf9c7ae38c64e..bff4d526333be 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -38,6 +38,13 @@
results = list(/datum/reagent/consumable/salt = 2)
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/chlorine = 1) // That's what I said! Sodium Chloride!
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_FOOD
+ required_other = TRUE
+
+/datum/chemical_reaction/sodiumchloride/pre_reaction_other_checks(datum/reagents/holder)
+ . = ..()
+ if(holder.has_reagent(/datum/reagent/consumable/liquidelectricity) || holder.has_reagent(/datum/reagent/consumable/liquidelectricity/enriched))
+ return FALSE
+
/datum/chemical_reaction/stable_plasma
results = list(/datum/reagent/stable_plasma = 1)
@@ -600,6 +607,18 @@
results = list(/datum/reagent/oxygen = 2.5, /datum/reagent/hydrogen = 5)
required_reagents = list(/datum/reagent/consumable/liquidelectricity/enriched = 1, /datum/reagent/water = 5)
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
+
+//salt electrolysis
+/datum/chemical_reaction/saltelectrolysis
+ results = list(/datum/reagent/chlorine = 2.5, /datum/reagent/sodium = 2.5)
+ required_reagents = list(/datum/reagent/consumable/salt = 5)
+ required_catalysts = list(/datum/reagent/consumable/liquidelectricity = 1)
+ reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
+
+/datum/chemical_reaction/saltelectrolysis/enriched
+ required_catalysts = list(/datum/reagent/consumable/liquidelectricity/enriched = 1)
+
+
//butterflium
/datum/chemical_reaction/butterflium
required_reagents = list(/datum/reagent/colorful_reagent = 1, /datum/reagent/medicine/omnizine = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/consumable/nutriment = 1)
diff --git a/code/modules/reagents/reagent_containers/cups/_cup.dm b/code/modules/reagents/reagent_containers/cups/_cup.dm
index 87df7765233ec..5590be84f4386 100644
--- a/code/modules/reagents/reagent_containers/cups/_cup.dm
+++ b/code/modules/reagents/reagent_containers/cups/_cup.dm
@@ -161,7 +161,7 @@
to_chat(user, span_notice("You fill [src] with [trans] unit\s of the contents of [target]."))
target.update_appearance()
- return ITEM_INTERACT_SUCCESS
+ return NONE
/obj/item/reagent_containers/cup/attackby(obj/item/attacking_item, mob/user, params)
var/hotness = attacking_item.get_temperature()
@@ -230,6 +230,7 @@
fill_icon_thresholds = list(0, 1, 20, 40, 60, 80, 100)
pickup_sound = 'sound/items/handling/beaker_pickup.ogg'
drop_sound = 'sound/items/handling/beaker_place.ogg'
+ sound_vary = TRUE
/obj/item/reagent_containers/cup/beaker/Initialize(mapload)
. = ..()
diff --git a/code/modules/reagents/reagent_containers/cups/bottle.dm b/code/modules/reagents/reagent_containers/cups/bottle.dm
index fda39ed4877ba..2259cda34d79c 100644
--- a/code/modules/reagents/reagent_containers/cups/bottle.dm
+++ b/code/modules/reagents/reagent_containers/cups/bottle.dm
@@ -129,6 +129,11 @@
desc = "A small bottle. Contains cold sauce."
list_reagents = list(/datum/reagent/consumable/frostoil = 30)
+/obj/item/reagent_containers/cup/bottle/strange_reagent
+ name = "Strange Reagent Bottle"
+ desc = "A small bottle. May be used to revive people."
+ list_reagents = list(/datum/reagent/medicine/strange_reagent = 30)
+
/obj/item/reagent_containers/cup/bottle/traitor
name = "syndicate bottle"
desc = "A small bottle. Contains a random nasty chemical."
diff --git a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm
index 7441614682c06..fa3a53434bbcc 100644
--- a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm
+++ b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm
@@ -14,6 +14,7 @@
obj_flags = UNIQUE_RENAME
drop_sound = 'sound/items/handling/drinkglass_drop.ogg'
pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg'
+ sound_vary = TRUE
custom_price = PAYCHECK_LOWER
//the screwdriver cocktail can make a drinking glass into the world's worst screwdriver. beautiful.
toolspeed = 25
diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.dm b/code/modules/reagents/reagent_containers/cups/glassbottle.dm
index b246cc01e07e9..a214ea47eb148 100644
--- a/code/modules/reagents/reagent_containers/cups/glassbottle.dm
+++ b/code/modules/reagents/reagent_containers/cups/glassbottle.dm
@@ -39,11 +39,93 @@
var/bottle_knockdown_duration = BOTTLE_KNOCKDOWN_DEFAULT_DURATION
tool_behaviour = TOOL_ROLLINGPIN // Used to knock out the Chef.
toolspeed = 1.3 //it's a little awkward to use, but it's a cylinder alright.
+ /// A contained piece of paper, a photo, or space cash, that we can use as a message or gift to future spessmen.
+ var/obj/item/message_in_a_bottle
/obj/item/reagent_containers/cup/glass/bottle/Initialize(mapload, vol)
. = ..()
var/static/list/recipes = list(/datum/crafting_recipe/molotov)
AddElement(/datum/element/slapcrafting, recipes)
+ register_context()
+ register_item_context()
+
+/obj/item/reagent_containers/cup/glass/bottle/add_context(atom/source, list/context, obj/item/held_item, mob/living/user)
+ if(message_in_a_bottle)
+ return NONE
+ if(istype(held_item, /obj/item/paper) || istype(held_item, /obj/item/stack/spacecash) || istype(held_item, /obj/item/photo))
+ context[SCREENTIP_CONTEXT_LMB] = "Insert message"
+ return CONTEXTUAL_SCREENTIP_SET
+ return NONE
+
+/obj/item/reagent_containers/cup/glass/bottle/add_item_context(obj/item/source, list/context, atom/target, mob/living/user)
+ if(message_in_a_bottle && HAS_TRAIT(target, TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION))
+ context[SCREENTIP_CONTEXT_RMB] = "Toss message"
+ return CONTEXTUAL_SCREENTIP_SET
+ return NONE
+
+/obj/item/reagent_containers/cup/glass/bottle/Exited(atom/movable/gone, atom/newloc)
+ if(gone == message_in_a_bottle)
+ message_in_a_bottle = null
+ if(!QDELETED(src))
+ update_icon(UPDATE_OVERLAYS)
+ return ..()
+
+/obj/item/reagent_containers/cup/glass/bottle/CheckParts(list/parts_list)
+ . = ..()
+ var/obj/item/reagent_containers/cup/glass/bottle/bottle = locate() in contents
+ if(bottle.message_in_a_bottle)
+ message_in_a_bottle = bottle.message_in_a_bottle
+ bottle.message_in_a_bottle.forceMove(src)
+
+/obj/item/reagent_containers/cup/glass/bottle/examine(mob/user)
+ . = ..()
+ if(message_in_a_bottle)
+ . += span_info("there's \a [message_in_a_bottle] inside it. Break it to take it out, or find a beach or ocean and toss it with [EXAMINE_HINT("right-click")].")
+ else if(isGlass)
+ . += span_tinynoticeital("you could place a paper, photo or space cash inside it...")
+
+/obj/item/reagent_containers/cup/glass/bottle/update_overlays()
+ . = ..()
+ if(message_in_a_bottle)
+ var/overlay = add_message_overlay()
+ if(overlay)
+ . += overlay
+
+/obj/item/reagent_containers/cup/glass/bottle/interact_with_atom_secondary(atom/target, mob/living/user, list/modifiers)
+ if(user.combat_mode || !HAS_TRAIT(target, TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION))
+ return ..()
+ if(!user.temporarilyRemoveItemFromInventory(src))
+ balloon_alert(user, "it's stuck to your hand!")
+ return ITEM_INTERACT_BLOCKING
+ user.visible_message(span_notice("[user] tosses [src] in [target]"), span_notice("You toss [src] in [target]"), span_notice("you hear a splash."))
+ SSpersistence.save_message_bottle(message_in_a_bottle, type)
+ playsound(target, 'sound/effects/bigsplash.ogg', 70)
+ qdel(src)
+ return ITEM_INTERACT_SUCCESS
+
+/obj/item/reagent_containers/cup/glass/bottle/item_interaction(mob/living/user, obj/item/item, list/modifiers)
+ if(!isGlass)
+ return NONE
+ if(!istype(item, /obj/item/paper) && !istype(item, /obj/item/stack/spacecash) && !istype(item, /obj/item/photo))
+ return NONE
+ if(message_in_a_bottle)
+ balloon_alert(user, "has a message already!")
+ return ITEM_INTERACT_BLOCKING
+ if(!user.transferItemToLoc(item, src))
+ balloon_alert(user, "it's stuck to your hand!")
+ return ITEM_INTERACT_BLOCKING
+ balloon_alert(user, "message inserted")
+ message_in_a_bottle = item
+ update_icon(UPDATE_OVERLAYS)
+ return ITEM_INTERACT_SUCCESS
+
+/obj/item/reagent_containers/cup/glass/bottle/proc/add_message_overlay()
+ if(istype(message_in_a_bottle, /obj/item/paper))
+ return "paper_in_bottle"
+ if(istype(message_in_a_bottle, /obj/item/photo))
+ return "photo_in_bottle"
+ if(istype(message_in_a_bottle, /obj/item/stack/spacecash))
+ return "cash_in_bottle"
/obj/item/reagent_containers/cup/glass/bottle/small
name = "small glass bottle"
@@ -56,14 +138,16 @@
if(bartender_check(target) && ranged)
return
SplashReagents(target, ranged, override_spillable = TRUE)
- var/obj/item/broken_bottle/B = new(drop_location())
+ var/obj/item/broken_bottle/broken = new(drop_location())
if(!ranged && thrower)
- thrower.put_in_hands(B)
- B.mimic_broken(src, target, break_top)
- B.inhand_icon_state = broken_inhand_icon_state
+ thrower.put_in_hands(broken)
+ broken.mimic_broken(src, target, break_top)
+ broken.inhand_icon_state = broken_inhand_icon_state
+ if(message_in_a_bottle)
+ message_in_a_bottle.forceMove(drop_location())
qdel(src)
- target.Bumped(B)
+ target.Bumped(broken)
/obj/item/reagent_containers/cup/glass/bottle/try_splash(mob/living/user, atom/target)
@@ -316,6 +400,12 @@
icon_state = "rumbottle"
list_reagents = list(/datum/reagent/consumable/ethanol/rum = 100)
+/obj/item/reagent_containers/cup/glass/bottle/rum/aged
+ name = "Captain Pete's Vintage spiced rum"
+ desc = "Shiver me timbers, a vintage edition of Captain Pete's rum. It's pratically GRIFF in a bottle from over 50 years ago."
+ icon_state = "rumbottle_gold"
+ list_reagents = list(/datum/reagent/consumable/ethanol/rum/aged = 100)
+
/obj/item/reagent_containers/cup/glass/bottle/maltliquor
name = "\improper Rabid Bear malt liquor"
desc = "A 40 full of malt liquor. Kicks stronger than, well, a rabid bear."
@@ -333,6 +423,9 @@
list_reagents = list(/datum/reagent/water/holywater = 100)
drink_type = NONE
+/obj/item/reagent_containers/cup/glass/bottle/holywater/add_message_overlay()
+ return //looks too weird...
+
/obj/item/reagent_containers/cup/glass/bottle/holywater/hell
desc = "A flask of holy water...it's been sitting in the Necropolis a while though."
icon_state = "unholyflask"
@@ -495,7 +588,6 @@
list_reagents = list(/datum/reagent/consumable/ethanol/sake = 100)
/obj/item/reagent_containers/cup/glass/bottle/sake/Initialize(mapload)
- . = ..()
if(prob(10))
name = "Fluffy Tail Sake"
desc += " On the bottle is a picture of a kitsune with nine touchable tails."
@@ -504,6 +596,12 @@
name = "Inubashiri's Home Brew"
desc += " Awoo."
icon_state = "sakebottle_i"
+ return ..()
+
+/obj/item/reagent_containers/cup/glass/bottle/sake/add_message_overlay()
+ if(icon_state == "sakebottle_k") //doesn't fit the sprite
+ return
+ return ..()
/obj/item/reagent_containers/cup/glass/bottle/fernet
name = "Fernet Bronca"
@@ -524,6 +622,9 @@
icon_state = "curacao_bottle"
list_reagents = list(/datum/reagent/consumable/ethanol/curacao = 100)
+/obj/item/reagent_containers/cup/glass/bottle/curacao/add_message_overlay()
+ return //doesn't fit the sprite
+
/obj/item/reagent_containers/cup/glass/bottle/navy_rum
name = "Pride of the Union Navy-Strength Rum"
desc = "Ironically named, given it's made in Bermuda."
@@ -568,6 +669,9 @@
///Whether this bottle was a victim of a successful sabrage attempt
var/sabraged = FALSE
+/obj/item/reagent_containers/cup/glass/bottle/champagne/add_message_overlay()
+ return //doesn't stylistically fit the sprite
+
/obj/item/reagent_containers/cup/glass/bottle/champagne/cursed
sabrage_success_percentile = 0 //force of the sharp item used to sabrage will not increase success chance
@@ -727,12 +831,18 @@
icon_state = "hoochbottle"
list_reagents = list(/datum/reagent/consumable/ethanol/hooch = 100)
+/obj/item/reagent_containers/cup/glass/bottle/hooch/add_message_overlay()
+ return //doesn't fit the sprite
+
/obj/item/reagent_containers/cup/glass/bottle/moonshine
name = "moonshine jug"
desc = "It is said that the ancient Applalacians used these stoneware jugs to capture lightning in a bottle."
icon_state = "moonshinebottle"
list_reagents = list(/datum/reagent/consumable/ethanol/moonshine = 100)
+/obj/item/reagent_containers/cup/glass/bottle/moonshine/add_message_overlay()
+ return //doesn't fit the sprite
+
/obj/item/reagent_containers/cup/glass/bottle/mushi_kombucha
name = "Solzara Brewing Company Mushi Kombucha"
desc = "Best drunk over ice to savour the mushroomy flavour."
@@ -784,15 +894,15 @@
)
/obj/item/reagent_containers/cup/glass/bottle/molotov/CheckParts(list/parts_list)
- ..()
- var/obj/item/reagent_containers/cup/glass/bottle/B = locate() in contents
- if(B)
- icon_state = B.icon_state
- B.reagents.copy_to(src, 100)
- if(istype(B, /obj/item/reagent_containers/cup/glass/bottle/juice))
- desc += " You're not sure if making this out of a carton was the brightest idea."
- isGlass = FALSE
- return
+ . = ..()
+ var/obj/item/reagent_containers/cup/glass/bottle/bottle = locate() in contents
+ if(!bottle)
+ return
+ icon_state = bottle.icon_state
+ bottle.reagents.copy_to(src, 100)
+ if(istype(bottle, /obj/item/reagent_containers/cup/glass/bottle/juice))
+ desc += " You're not sure if making this out of a carton was the brightest idea."
+ isGlass = FALSE
/obj/item/reagent_containers/cup/glass/bottle/molotov/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum, do_splash = FALSE)
..(hit_atom, throwingdatum, do_splash = FALSE)
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index dc54dcd7db44b..4b6ee9c8c7860 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -154,7 +154,7 @@
set name = "Empty Spray Bottle"
set category = "Object"
set src in usr
- if(usr.incapacitated())
+ if(usr.incapacitated)
return
if (tgui_alert(usr, "Are you sure you want to empty that?", "Empty Bottle:", list("Yes", "No")) != "Yes")
return
diff --git a/code/modules/recycling/conveyor.dm b/code/modules/recycling/conveyor.dm
index 21c5aa7a1a902..0d207ed7e11fc 100644
--- a/code/modules/recycling/conveyor.dm
+++ b/code/modules/recycling/conveyor.dm
@@ -434,6 +434,8 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
/// Updates the switch's `position` and `last_pos` variable. Useful so that the switch can properly cycle between the forwards, backwards and neutral positions.
/obj/machinery/conveyor_switch/proc/update_position(direction)
if(position == CONVEYOR_OFF)
+ playsound(src, 'sound/machines/lever_start.ogg', 40, TRUE)
+
if(oneway) //is it a oneway switch
position = oneway
else
@@ -442,6 +444,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
else
position = CONVEYOR_BACKWARDS
else
+ playsound(src, 'sound/machines/lever_stop.ogg', 40, TRUE)
position = CONVEYOR_OFF
/obj/machinery/conveyor_switch/proc/on_user_activation(mob/user, direction)
diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm
index 4b54cf9f4b023..46d023dbfaf3f 100644
--- a/code/modules/recycling/disposal/bin.dm
+++ b/code/modules/recycling/disposal/bin.dm
@@ -416,7 +416,7 @@
data["isai"] = HAS_AI_ACCESS(user)
return data
-/obj/machinery/disposal/bin/ui_act(action, params)
+/obj/machinery/disposal/bin/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -624,6 +624,12 @@
SIGNAL_HANDLER
if((shove_flags & SHOVE_KNOCKDOWN_BLOCKED) || !(shove_flags & SHOVE_BLOCKED))
return
+ var/cur_density = density
+ density = FALSE
+ if (!target.Move(get_turf(src), get_dir(target, src)))
+ density = cur_density
+ return
+ density = cur_density
target.Knockdown(SHOVE_KNOCKDOWN_SOLID)
target.forceMove(src)
target.visible_message(span_danger("[shover.name] shoves [target.name] into \the [src]!"),
diff --git a/code/modules/recycling/disposal/holder.dm b/code/modules/recycling/disposal/holder.dm
index b842a69413d7d..78469d491912b 100644
--- a/code/modules/recycling/disposal/holder.dm
+++ b/code/modules/recycling/disposal/holder.dm
@@ -195,7 +195,7 @@
// called when player tries to move while in a pipe
/obj/structure/disposalholder/relaymove(mob/living/user, direction)
- if(user.incapacitated())
+ if(user.incapacitated)
return
for(var/mob/M in range(5, get_turf(src)))
M.show_message("CLONG, clong!", MSG_AUDIBLE)
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index a6be96a43a811..a61bf0f59445b 100644
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -309,7 +309,7 @@
return data
/** User clicks a button on the tagger */
-/obj/item/dest_tagger/ui_act(action, params)
+/obj/item/dest_tagger/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/religion/sparring/sparring_contract.dm b/code/modules/religion/sparring/sparring_contract.dm
index c31be81f64945..8d6c34a90d724 100644
--- a/code/modules/religion/sparring/sparring_contract.dm
+++ b/code/modules/religion/sparring/sparring_contract.dm
@@ -65,7 +65,7 @@
area_names += key
return area_names
-/obj/item/sparring_contract/ui_act(action, list/params)
+/obj/item/sparring_contract/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -84,7 +84,7 @@
if(!isnull(resolved))
resolved_opponents += resolved
- if(user in resolved_opponents && params["stakes"] == STAKES_HOLY_MATCH)
+ if((user in resolved_opponents) && params["stakes"] == STAKES_HOLY_MATCH)
to_chat(user, span_warning("This contract refuses to be signed up for a holy match by a previous holy match loser. Pick a different stake!"))
//any updating of the terms should update the UI to display new terms
diff --git a/code/modules/research/anomaly/anomaly_core.dm b/code/modules/research/anomaly/anomaly_core.dm
index febb25add5301..9cf762e58d219 100644
--- a/code/modules/research/anomaly/anomaly_core.dm
+++ b/code/modules/research/anomaly/anomaly_core.dm
@@ -20,8 +20,9 @@
A.anomalyNeutralize()
return TRUE
-/obj/item/assembly/signaler/anomaly/manual_suicide(mob/living/carbon/user)
- user.visible_message(span_suicide("[user]'s [src] is reacting to the radio signal, warping [user.p_their()] body!"))
+/obj/item/assembly/signaler/anomaly/manual_suicide(datum/mind/suicidee)
+ var/mob/living/user = suicidee.current
+ user.visible_message(span_suicide("[user]'s [name] is reacting to the radio signal, warping [user.p_their()] body!"))
user.set_suicide(TRUE)
user.gib(DROP_ALL_REMAINS)
diff --git a/code/modules/research/anomaly/anomaly_refinery.dm b/code/modules/research/anomaly/anomaly_refinery.dm
index bae2b4f116261..1269edb926561 100644
--- a/code/modules/research/anomaly/anomaly_refinery.dm
+++ b/code/modules/research/anomaly/anomaly_refinery.dm
@@ -315,7 +315,7 @@
ui = new(user, src, "AnomalyRefinery")
ui.open()
-/obj/machinery/research/anomaly_refinery/ui_act(action, list/params)
+/obj/machinery/research/anomaly_refinery/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/research/designs/autolathe/service_designs.dm b/code/modules/research/designs/autolathe/service_designs.dm
index e7177037e522c..94772421b69ab 100644
--- a/code/modules/research/designs/autolathe/service_designs.dm
+++ b/code/modules/research/designs/autolathe/service_designs.dm
@@ -581,7 +581,7 @@
/datum/design/telescreen_entertainment
name = "Entertainment Telescreen"
id = "telescreen_entertainment"
- build_type = PROTOLATHE
+ build_type = AUTOLATHE | PROTOLATHE
materials = list(
/datum/material/iron = SHEET_MATERIAL_AMOUNT*5,
/datum/material/glass =SHEET_MATERIAL_AMOUNT * 2.5,
@@ -593,6 +593,21 @@
)
departmental_flags = DEPARTMENT_BITFLAG_SERVICE
+/datum/design/entertainment_radio
+ name = "Entertainment Radio"
+ id = "radio_entertainment"
+ build_type = AUTOLATHE | PROTOLATHE
+ materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT*0.75,
+ /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.25
+ )
+ build_path = /obj/item/radio/entertainment/speakers/physical
+ category = list(
+ RND_CATEGORY_INITIAL,
+ RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS,
+ )
+ departmental_flags = DEPARTMENT_BITFLAG_SERVICE
+
/datum/design/barcode_scanner
name = "Barcode Scanner"
id = "barcode_scanner"
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index 53104494c820e..d07deca292691 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -540,7 +540,7 @@
category = list(
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH
)
- departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
+ departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/board/microwave
name = "Microwave Board"
@@ -1247,3 +1247,13 @@
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE
)
departmental_flags = DEPARTMENT_BITFLAG_SERVICE
+
+/datum/design/board/big_manipulator
+ name = "Big Manipulator Board"
+ desc = "The circuit board for a big manipulator."
+ id = "big_manipulator"
+ build_path = /obj/item/circuitboard/machine/big_manipulator
+ category = list(
+ RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING
+ )
+ departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SERVICE
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index 96b3e60c63505..3139b365d0502 100644
--- a/code/modules/research/designs/mechfabricator_designs.dm
+++ b/code/modules/research/designs/mechfabricator_designs.dm
@@ -1578,6 +1578,34 @@
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR
)
+/datum/design/borg_upgrade_plunger
+ name = "Integrated Plunger"
+ id = "borg_upgrade_plunger"
+ build_type = MECHFAB
+ build_path = /obj/item/borg/upgrade/plunger
+ materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT*1.125,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT*0.75,
+ )
+ construction_time = 4 SECONDS
+ category = list(
+ RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR
+ )
+
+/datum/design/borg_upgrade_high_capacity_replacer
+ name = "High Capacity Light Replacer"
+ id = "borg_upgrade_high_capacity_replacer"
+ build_type = MECHFAB
+ build_path = /obj/item/borg/upgrade/high_capacity_light_replacer
+ materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT*1.125,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT*0.75,
+ )
+ construction_time = 4 SECONDS
+ category = list(
+ RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR
+ )
+
/datum/design/borg_upgrade_rolling_table
name = "Rolling Table Dock"
id = "borg_upgrade_rolling_table"
@@ -2727,6 +2755,17 @@
RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_ENGINEERING
)
+/datum/design/module/fishing_glove
+ name = "MOD Fishing Glove Module"
+ id = "mod_fishing"
+ materials = list(
+ /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT,
+ )
+ build_path = /obj/item/mod/module/fishing_glove
+
/datum/design/posisphere
name = "Positronic Sphere"
desc = "The latest in Artificial Pesterance."
diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm
index 9aaa047d3a1c3..90b8acee031a9 100644
--- a/code/modules/research/designs/misc_designs.dm
+++ b/code/modules/research/designs/misc_designs.dm
@@ -986,6 +986,18 @@
)
departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE
+/datum/design/fishing_gloves
+ name = "Athletic Fishing Gloves"
+ desc = "A pair of gloves to fish without a fishing rod and train your athletics with."
+ id = "fishing_gloves"
+ build_type = PROTOLATHE | AWAY_LATHE
+ materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = SHEET_MATERIAL_AMOUNT)
+ build_path = /obj/item/clothing/gloves/fishing
+ category = list(
+ RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE
+ )
+ departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE
+
/datum/design/stabilized_hook
name = "Gyro-Stabilized Hook"
desc = "An advanced fishing hook that gives the user a tighter control on the fish when reeling in."
@@ -1000,7 +1012,7 @@
/datum/design/auto_reel
name = "Fishing Line Auto-Reel"
- desc = "An advanced line reel which can be used speed up both fishing and casually snagging other items in your direction."
+ desc = "An advanced line reel which can be used speed up fishing or casually snag other items in your direction."
id = "auto_reel"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 4, /datum/material/gold = SMALL_MATERIAL_AMOUNT * 3, /datum/material/silver = SMALL_MATERIAL_AMOUNT * 3)
@@ -1022,6 +1034,18 @@
)
departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE
+/datum/design/bluespace_fish_case
+ name = "Bluespace Fish Case"
+ desc = "An improved fish case to keep large fish in stasis in a compact little space."
+ id = "bluespace_fish_case"
+ build_type = PROTOLATHE | AWAY_LATHE
+ materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT, /datum/material/plastic = SMALL_MATERIAL_AMOUNT, /datum/material/bluespace = SMALL_MATERIAL_AMOUNT)
+ build_path = /obj/item/storage/fish_case/bluespace
+ category = list(
+ RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE
+ )
+ departmental_flags = DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_SCIENCE
+
// Coffeemaker Stuff
/datum/design/coffeepot
diff --git a/code/modules/research/designs/wiremod_designs.dm b/code/modules/research/designs/wiremod_designs.dm
index dbcd74165946a..e848356359dac 100644
--- a/code/modules/research/designs/wiremod_designs.dm
+++ b/code/modules/research/designs/wiremod_designs.dm
@@ -39,7 +39,7 @@
name = "Component ( NULL ENTRY )"
desc = "A component that goes into an integrated circuit."
build_type = COMPONENT_PRINTER
- materials = list(/datum/material/glass =HALF_SHEET_MATERIAL_AMOUNT)
+ materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT)
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
category = list(
RND_CATEGORY_CIRCUITRY + RND_SUBCATEGORY_CIRCUITRY_COMPONENTS
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 0c28fcab2bf6e..ded27054695cc 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -166,7 +166,7 @@
return data
-/obj/machinery/rnd/experimentor/ui_act(action, list/params)
+/obj/machinery/rnd/experimentor/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/research/ordnance/doppler_array.dm b/code/modules/research/ordnance/doppler_array.dm
index 5e44c2dc703e4..6b1be6769844d 100644
--- a/code/modules/research/ordnance/doppler_array.dm
+++ b/code/modules/research/ordnance/doppler_array.dm
@@ -290,7 +290,7 @@
data["records"] += list(record_data)
return data
-/obj/machinery/doppler_array/ui_act(action, list/params)
+/obj/machinery/doppler_array/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/research/ordnance/scipaper_partner.dm b/code/modules/research/ordnance/scipaper_partner.dm
index 7120c78cecde9..5bbe3e7d62746 100644
--- a/code/modules/research/ordnance/scipaper_partner.dm
+++ b/code/modules/research/ordnance/scipaper_partner.dm
@@ -1,14 +1,18 @@
/datum/scientific_partner/mining
name = "Mining Corps"
- flufftext = "A local group of miners are looking for ways to improve their mining output. They are interested in smaller scale explosives."
- accepted_experiments = list(/datum/experiment/ordnance/explosive/lowyieldbomb)
+ flufftext = "A local group of miners are looking for ways to improve their mining output. They are interested in smaller scale explosives and plasma research."
+ accepted_experiments = list(
+ /datum/experiment/ordnance/gaseous/plasma,
+ /datum/experiment/ordnance/explosive/lowyieldbomb,
+ /datum/experiment/ordnance/explosive/highyieldbomb,
+ )
multipliers = list(SCIPAPER_COOPERATION_INDEX = 0.75, SCIPAPER_FUNDING_INDEX = 0.75)
boostable_nodes = list(
- TECHWEB_NODE_BLUESPACE_THEORY = TECHWEB_TIER_3_POINTS,
- TECHWEB_NODE_NIGHT_VISION = TECHWEB_TIER_2_POINTS,
- TECHWEB_NODE_ANOMALY_RESEARCH = TECHWEB_TIER_2_POINTS,
- TECHWEB_NODE_MINING = TECHWEB_TIER_1_POINTS,
- TECHWEB_NODE_MINING_ADV = TECHWEB_TIER_2_POINTS,
+ TECHWEB_NODE_LOW_PRESSURE_EXCAVATION = TECHWEB_TIER_2_POINTS,
+ TECHWEB_NODE_PLASMA_MINING = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_MINING_ADV = TECHWEB_TIER_4_POINTS,
+ TECHWEB_NODE_NIGHT_VISION = TECHWEB_TIER_4_POINTS,
+ TECHWEB_NODE_BORG_ENGI = TECHWEB_TIER_3_POINTS,
)
/datum/scientific_partner/baron
@@ -17,23 +21,26 @@
multipliers = list(SCIPAPER_COOPERATION_INDEX = 0.25, SCIPAPER_FUNDING_INDEX = 2)
boostable_nodes = list(
TECHWEB_NODE_CONSOLES = TECHWEB_TIER_1_POINTS,
- TECHWEB_NODE_FUNDIMENTAL_SCI = TECHWEB_TIER_1_POINTS,
+ TECHWEB_NODE_GAMING = TECHWEB_TIER_2_POINTS,
+ TECHWEB_NODE_BITRUNNING = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_PROGRAMMED_SERVER = TECHWEB_TIER_3_POINTS,
)
/datum/scientific_partner/defense
name = "Defense Partnership"
- flufftext = "We can work directly for Nanotrasen's \[REDACTED\] division, potentially providing us access with advanced defensive gadgets."
+ flufftext = "We can work directly for Nanotrasen's \[REDACTED\] division, potentially providing us access with advanced offensive and defensive gadgets."
accepted_experiments = list(
+ /datum/experiment/ordnance/explosive/lowyieldbomb,
/datum/experiment/ordnance/explosive/highyieldbomb,
/datum/experiment/ordnance/explosive/pressurebomb,
/datum/experiment/ordnance/explosive/hydrogenbomb,
)
boostable_nodes = list(
- TECHWEB_NODE_RIOT_SUPRESSION = TECHWEB_TIER_3_POINTS,
- TECHWEB_NODE_SEC_EQUIP = TECHWEB_TIER_1_POINTS,
- TECHWEB_NODE_EXPLOSIVES = TECHWEB_TIER_2_POINTS,
- TECHWEB_NODE_ELECTRIC_WEAPONS = TECHWEB_TIER_2_POINTS,
- TECHWEB_NODE_BEAM_WEAPONS = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_RIOT_SUPRESSION = TECHWEB_TIER_2_POINTS,
+ TECHWEB_NODE_EXPLOSIVES = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_MECH_ENERGY_GUNS = TECHWEB_TIER_4_POINTS,
+ TECHWEB_NODE_MECH_FIREARMS = TECHWEB_TIER_5_POINTS,
+ TECHWEB_NODE_MECH_HEAVY_ARMS = TECHWEB_TIER_5_POINTS,
)
/datum/scientific_partner/medical
@@ -44,24 +51,27 @@
/datum/experiment/ordnance/gaseous/bz,
)
boostable_nodes = list(
- TECHWEB_NODE_CYBER_ORGANS = TECHWEB_TIER_1_POINTS,
- TECHWEB_NODE_CYBER_ORGANS_UPGRADED = TECHWEB_TIER_2_POINTS,
- TECHWEB_NODE_GENE_ENGINEERING = TECHWEB_TIER_1_POINTS,
- TECHWEB_NODE_PASSIVE_IMPLANTS = TECHWEB_TIER_1_POINTS,
- TECHWEB_NODE_BIO_SCAN = TECHWEB_TIER_1_POINTS,
- TECHWEB_NODE_CHEM_SYNTHESIS = TECHWEB_TIER_2_POINTS,
+ TECHWEB_NODE_CYBER_ORGANS = TECHWEB_TIER_2_POINTS,
+ TECHWEB_NODE_CYBER_ORGANS_UPGRADED = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_MEDBAY_EQUIP_ADV = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_CYTOLOGY = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_BORG_MEDICAL = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_COMBAT_IMPLANTS = TECHWEB_TIER_4_POINTS,
)
/datum/scientific_partner/physics
name = "NT Physics Quarterly"
flufftext = "A prestigious physics journal managed by Nanotrasen. The main journal for publishing cutting-edge physics research conducted by Nanotrasen, given that they aren't classified."
accepted_experiments = list(
+ /datum/experiment/ordnance/gaseous/bz,
+ /datum/experiment/ordnance/explosive/hydrogenbomb,
/datum/experiment/ordnance/gaseous/noblium,
/datum/experiment/ordnance/explosive/nobliumbomb,
)
boostable_nodes = list(
- TECHWEB_NODE_PARTS_UPG = TECHWEB_TIER_2_POINTS,
- TECHWEB_NODE_EXP_TOOLS = TECHWEB_TIER_4_POINTS,
- TECHWEB_NODE_PARTS_BLUESPACE = TECHWEB_TIER_3_POINTS,
- TECHWEB_NODE_PARTS_ADV = TECHWEB_TIER_1_POINTS,
+ TECHWEB_NODE_PARTS_ADV = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_BLUESPACE_TRAVEL = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_ANOMALY_RESEARCH = TECHWEB_TIER_3_POINTS,
+ TECHWEB_NODE_TELECOMS = TECHWEB_TIER_5_POINTS,
+ TECHWEB_NODE_MECH_EQUIP_BLUESPACE = TECHWEB_TIER_5_POINTS,
)
diff --git a/code/modules/research/ordnance/tank_compressor.dm b/code/modules/research/ordnance/tank_compressor.dm
index d0393d9e10374..89f38ee4a32e0 100644
--- a/code/modules/research/ordnance/tank_compressor.dm
+++ b/code/modules/research/ordnance/tank_compressor.dm
@@ -275,7 +275,7 @@
ui = new(user, src, "TankCompressor")
ui.open()
-/obj/machinery/atmospherics/components/binary/tank_compressor/ui_act(action, list/params)
+/obj/machinery/atmospherics/components/binary/tank_compressor/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index 91cf89582d369..d4dde8732a0e9 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -319,7 +319,7 @@ Nothing else in the console has ID requirements.
"id_cache" = flat_id_cache,
)
-/obj/machinery/computer/rdconsole/ui_act(action, list/params)
+/obj/machinery/computer/rdconsole/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/research/server_control.dm b/code/modules/research/server_control.dm
index 24327a731a64e..73596925a2d78 100644
--- a/code/modules/research/server_control.dm
+++ b/code/modules/research/server_control.dm
@@ -61,7 +61,7 @@
return data
-/obj/machinery/computer/rdservercontrol/ui_act(action, params)
+/obj/machinery/computer/rdservercontrol/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return TRUE
diff --git a/code/modules/research/techweb/nodes/atmos_nodes.dm b/code/modules/research/techweb/nodes/atmos_nodes.dm
index ef4fee5ed92a7..f1ec74b50f482 100644
--- a/code/modules/research/techweb/nodes/atmos_nodes.dm
+++ b/code/modules/research/techweb/nodes/atmos_nodes.dm
@@ -42,6 +42,12 @@
"pneumatic_seal",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
+ experiments_to_unlock = list(
+ /datum/experiment/ordnance/gaseous/plasma,
+ /datum/experiment/ordnance/gaseous/nitrous_oxide,
+ /datum/experiment/ordnance/gaseous/bz,
+ /datum/experiment/ordnance/gaseous/noblium,
+ )
/datum/techweb_node/plasma_control
id = TECHWEB_NODE_PLASMA_CONTROL
@@ -77,7 +83,6 @@
"crystallizer",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
- required_experiments = list(/datum/experiment/ordnance/gaseous/bz)
discount_experiments = list(/datum/experiment/ordnance/gaseous/nitrous_oxide = TECHWEB_TIER_3_POINTS)
/datum/techweb_node/exp_tools
@@ -99,7 +104,7 @@
"magboots",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
- discount_experiments = list(/datum/experiment/ordnance/gaseous/noblium = TECHWEB_TIER_4_POINTS)
+ discount_experiments = list(/datum/experiment/ordnance/gaseous/bz = TECHWEB_TIER_4_POINTS)
/datum/techweb_node/rcd_upgrade
id = TECHWEB_NODE_RCD_UPGRADE
@@ -116,3 +121,4 @@
"rpd_upgrade_unwrench",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
+ discount_experiments = list(/datum/experiment/ordnance/gaseous/noblium = TECHWEB_TIER_5_POINTS)
diff --git a/code/modules/research/techweb/nodes/biology_nodes.dm b/code/modules/research/techweb/nodes/biology_nodes.dm
index 3599dfb9fc5a1..7b553445a9c2a 100644
--- a/code/modules/research/techweb/nodes/biology_nodes.dm
+++ b/code/modules/research/techweb/nodes/biology_nodes.dm
@@ -44,7 +44,7 @@
"limbdesign_plasmaman",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
- required_experiments = list(/datum/experiment/scanning/cytology/slime)
+ discount_experiments = list(/datum/experiment/scanning/cytology/slime = TECHWEB_TIER_3_POINTS)
/datum/techweb_node/gene_engineering
id = TECHWEB_NODE_GENE_ENGINEERING
diff --git a/code/modules/research/techweb/nodes/cyborg_nodes.dm b/code/modules/research/techweb/nodes/cyborg_nodes.dm
index 5e0ad2f64e0e9..8a9d09807d627 100644
--- a/code/modules/research/techweb/nodes/cyborg_nodes.dm
+++ b/code/modules/research/techweb/nodes/cyborg_nodes.dm
@@ -11,6 +11,7 @@
"borg_l_leg",
"borg_r_arm",
"borg_r_leg",
+ "borg_suit",
"cybernetic_eyes",
"cybernetic_eyes_moth",
"cybernetic_ears",
@@ -32,7 +33,6 @@
"robocontrol",
"borgupload",
"cyborgrecharger",
- "borg_suit",
"mmi_posi",
"mmi",
"mmi_m",
@@ -98,6 +98,8 @@
"borg_upgrade_broomer",
"borg_upgrade_expand",
"borg_upgrade_prt",
+ "borg_upgrade_plunger",
+ "borg_upgrade_high_capacity_replacer",
"borg_upgrade_selfrepair",
"borg_upgrade_thrusters",
"borg_upgrade_trashofholding",
diff --git a/code/modules/research/techweb/nodes/engi_nodes.dm b/code/modules/research/techweb/nodes/engi_nodes.dm
index 0fe1b7bd75f33..949b880d1f23a 100644
--- a/code/modules/research/techweb/nodes/engi_nodes.dm
+++ b/code/modules/research/techweb/nodes/engi_nodes.dm
@@ -126,6 +126,7 @@
"firelock_board",
"trapdoor_electronics",
"blast",
+ "big_manipulator",
"tile_sprayer",
"airlock_painter",
"decal_painter",
diff --git a/code/modules/research/techweb/nodes/mech_nodes.dm b/code/modules/research/techweb/nodes/mech_nodes.dm
index d6b7171d55b37..b09957076d712 100644
--- a/code/modules/research/techweb/nodes/mech_nodes.dm
+++ b/code/modules/research/techweb/nodes/mech_nodes.dm
@@ -254,7 +254,7 @@
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS)
/datum/techweb_node/mech_equip_bluespace
- id = TECHWEB_NODE_BLUESPACE
+ id = TECHWEB_NODE_MECH_EQUIP_BLUESPACE
display_name = "Bluespace Exosuit Equipment"
description = "An array of equipment empowered by bluespace, providing unmatched mobility and utility."
prereq_ids = list(TECHWEB_NODE_MECH_INFILTRATOR, TECHWEB_NODE_BLUESPACE_TRAVEL)
diff --git a/code/modules/research/techweb/nodes/medbay_nodes.dm b/code/modules/research/techweb/nodes/medbay_nodes.dm
index f5b122ccd287d..fababbc55e748 100644
--- a/code/modules/research/techweb/nodes/medbay_nodes.dm
+++ b/code/modules/research/techweb/nodes/medbay_nodes.dm
@@ -84,7 +84,7 @@
id = TECHWEB_NODE_CRYOSTASIS
display_name = "Cryostasis"
description = "The result of clown accidentally drinking a chemical, now repurposed for safely preserving crew members in suspended animation."
- prereq_ids = list(TECHWEB_NODE_FUSION)
+ prereq_ids = list(TECHWEB_NODE_MEDBAY_EQUIP_ADV, TECHWEB_NODE_FUSION)
design_ids = list(
"cryotube",
"mech_sleeper",
diff --git a/code/modules/research/techweb/nodes/service_nodes.dm b/code/modules/research/techweb/nodes/service_nodes.dm
index 591308947b23f..3735dc41b3b2c 100644
--- a/code/modules/research/techweb/nodes/service_nodes.dm
+++ b/code/modules/research/techweb/nodes/service_nodes.dm
@@ -165,9 +165,12 @@
prereq_ids = list(TECHWEB_NODE_FISHING_EQUIP)
design_ids = list(
"fishing_rod_tech",
+ "fishing_gloves",
+ "mod_fishing",
"stabilized_hook",
"auto_reel",
"fish_analyzer",
+ "bluespace_fish_case",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
required_experiments = list(/datum/experiment/scanning/fish)
diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm
index 9bd9e2d881b1c..89baa18720d7b 100644
--- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm
@@ -151,7 +151,7 @@ Slimecrossing Armor
var/hit_reflect_chance = 40
/obj/item/clothing/suit/armor/heavy/adamantine/IsReflect(def_zone)
- if(def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) && prob(hit_reflect_chance))
+ if((def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) && prob(hit_reflect_chance))
return TRUE
else
return FALSE
diff --git a/code/modules/research/xenobiology/crossbreeding/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm
index c5136baafb149..152a90f9795eb 100644
--- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_weapons.dm
@@ -66,6 +66,7 @@ Slimecrossing Weapons
attack_verb_simple = list("bash", "pound", "slam")
item_flags = SLOWS_WHILE_IN_HAND
breakable_by_damage = FALSE
+ shield_bash_sound = 'sound/effects/glassknock.ogg'
/datum/armor/shield_adamantineshield
melee = 50
diff --git a/code/modules/research/xenobiology/vatgrowing/petri_dish.dm b/code/modules/research/xenobiology/vatgrowing/petri_dish.dm
index 0187fa8eda359..df2fa619cc3d1 100644
--- a/code/modules/research/xenobiology/vatgrowing/petri_dish.dm
+++ b/code/modules/research/xenobiology/vatgrowing/petri_dish.dm
@@ -59,6 +59,7 @@
list(CELL_LINE_TABLE_COCKROACH, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 7),
list(CELL_LINE_TABLE_BLOBBERNAUT, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5)
)
+ name = "basic sample petri dish"
/obj/item/petri_dish/random/Initialize(mapload)
. = ..()
diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm
index 69fc6f73289e1..adb62496d8bbb 100644
--- a/code/modules/security_levels/keycard_authentication.dm
+++ b/code/modules/security_levels/keycard_authentication.dm
@@ -60,7 +60,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new)
return UI_CLOSE
return ..()
-/obj/machinery/keycard_auth/ui_act(action, params)
+/obj/machinery/keycard_auth/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(. || waiting || !allowed(usr))
return
diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm
index cf53fef368c1b..5ce62f8c04226 100644
--- a/code/modules/shuttle/computer.dm
+++ b/code/modules/shuttle/computer.dm
@@ -174,7 +174,7 @@
else
return SHUTTLE_CONSOLE_ERROR
-/obj/machinery/computer/shuttle/ui_act(action, params)
+/obj/machinery/computer/shuttle/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm
index 6740424cf801a..6586539b1d05f 100644
--- a/code/modules/shuttle/emergency.dm
+++ b/code/modules/shuttle/emergency.dm
@@ -755,12 +755,13 @@
name = "emergency space helmet"
icon_state = "syndicate-helm-orange"
inhand_icon_state = "syndicate-helm-orange"
+ slowdown = 1.5
/obj/item/clothing/suit/space/orange
name = "emergency space suit"
icon_state = "syndicate-orange"
inhand_icon_state = "syndicate-orange"
- slowdown = 3
+ slowdown = 1.5
/obj/item/pickaxe/emergency
name = "emergency disembarkation tool"
diff --git a/code/modules/spells/spell_types/pointed/finger_guns.dm b/code/modules/spells/spell_types/pointed/finger_guns.dm
index 24f51a0e90862..cf80489fc916a 100644
--- a/code/modules/spells/spell_types/pointed/finger_guns.dm
+++ b/code/modules/spells/spell_types/pointed/finger_guns.dm
@@ -33,7 +33,7 @@
return FALSE
var/mob/living/carbon/human/human_invoker = invoker
- if(human_invoker.incapacitated())
+ if(human_invoker.incapacitated)
if(feedback)
to_chat(human_invoker, span_warning("You can't properly point your fingers while incapacitated."))
return FALSE
diff --git a/code/modules/spells/spell_types/shapeshift/_shapeshift.dm b/code/modules/spells/spell_types/shapeshift/_shapeshift.dm
index 59c9ffdde3b0b..b7542d4077f3c 100644
--- a/code/modules/spells/spell_types/shapeshift/_shapeshift.dm
+++ b/code/modules/spells/spell_types/shapeshift/_shapeshift.dm
@@ -141,7 +141,7 @@
if(QDELETED(caster))
return FALSE
- return !caster.incapacitated()
+ return !caster.incapacitated
/// Actually does the shapeshift, for the caster.
/datum/action/cooldown/spell/shapeshift/proc/do_shapeshift(mob/living/caster)
diff --git a/code/modules/spells/spell_types/teleport/teleport.dm b/code/modules/spells/spell_types/teleport/teleport.dm
index d486157204283..57e88b9852025 100644
--- a/code/modules/spells/spell_types/teleport/teleport.dm
+++ b/code/modules/spells/spell_types/teleport/teleport.dm
@@ -48,5 +48,5 @@
return
var/mob/living/carbon/caster = cast_on
- if(caster.incapacitated() || !caster.is_holding(target))
+ if(caster.incapacitated || !caster.is_holding(target))
return . | SPELL_CANCEL_CAST
diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm
index e2feaa2bc26ed..683afe605c983 100644
--- a/code/modules/station_goals/bsa.dm
+++ b/code/modules/station_goals/bsa.dm
@@ -299,7 +299,7 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE)
data["target"] = get_target_name()
return data
-/obj/machinery/computer/bsa_control/ui_act(action, params)
+/obj/machinery/computer/bsa_control/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm
index 6c2661bbe2237..5a14c0e16b66d 100644
--- a/code/modules/station_goals/dna_vault.dm
+++ b/code/modules/station_goals/dna_vault.dm
@@ -164,7 +164,7 @@
data["choiceB"] = initial(mutation2.name)
return data
-/obj/machinery/dna_vault/ui_act(action, params)
+/obj/machinery/dna_vault/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/surgery/advanced/brainwashing.dm b/code/modules/surgery/advanced/brainwashing.dm
index 0e80f89b6dc60..21870ae57b8df 100644
--- a/code/modules/surgery/advanced/brainwashing.dm
+++ b/code/modules/surgery/advanced/brainwashing.dm
@@ -81,7 +81,7 @@
if(!target.mind)
to_chat(user, span_warning("[target] doesn't respond to the brainwashing, as if [target.p_they()] lacked a mind..."))
return FALSE
- if(HAS_TRAIT(target, TRAIT_MINDSHIELD))
+ if(HAS_MIND_TRAIT(target, TRAIT_UNCONVERTABLE))
to_chat(user, span_warning("You hear a faint buzzing from a device inside [target]'s brain, and the brainwashing is erased."))
return FALSE
display_results(
diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm
index 7a7809ef48cba..296f818e58744 100644
--- a/code/modules/surgery/bodyparts/_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/_bodyparts.dm
@@ -183,7 +183,7 @@
///Determines the accuracy bonus, armor penetration and knockdown probability.
var/unarmed_effectiveness = 10
- /// Traits that are given to the holder of the part. If you want an effect that changes this, don't add directly to this. Use the add_bodypart_trait() proc
+ /// Traits that are given to the holder of the part. This does not update automatically on life(), only when the organs are initially generated or inserted!
var/list/bodypart_traits = list()
/// The name of the trait source that the organ gives. Should not be altered during the events of gameplay, and will cause problems if it is.
var/bodypart_trait_source = BODYPART_TRAIT
diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm
index c656daeb18445..5579cb64d83d5 100644
--- a/code/modules/surgery/bodyparts/dismemberment.dm
+++ b/code/modules/surgery/bodyparts/dismemberment.dm
@@ -231,8 +231,6 @@
for(var/obj/item/head_item as anything in list(owner.glasses, owner.ears, owner.wear_mask, owner.head))
owner.dropItemToGround(head_item, force = TRUE)
- qdel(owner.GetComponent(/datum/component/creamed)) //clean creampie overlay flushed emoji
-
//Handle dental implants
for(var/datum/action/item_action/activate_pill/pill_action in owner.actions)
pill_action.Remove(owner)
diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm
index 314f3396f0afe..738b3ce97ac3b 100644
--- a/code/modules/surgery/bodyparts/robot_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm
@@ -124,8 +124,8 @@
if (severity == EMP_HEAVY)
knockdown_time *= 2
owner.Knockdown(knockdown_time)
- if(owner.incapacitated(IGNORE_RESTRAINTS|IGNORE_GRAB)) // So the message isn't duplicated. If they were stunned beforehand by something else, then the message not showing makes more sense anyways.
- return FALSE
+ if(INCAPACITATED_IGNORING(owner, INCAPABLE_RESTRAINTS|INCAPABLE_GRAB)) // So the message isn't duplicated. If they were stunned beforehand by something else, then the message not showing makes more sense anyways.
+ return
to_chat(owner, span_danger("As your [plaintext_zone] unexpectedly malfunctions, it causes you to fall to the ground!"))
return
@@ -173,8 +173,8 @@
if (severity == EMP_HEAVY)
knockdown_time *= 2
owner.Knockdown(knockdown_time)
- if(owner.incapacitated(IGNORE_RESTRAINTS|IGNORE_GRAB)) // So the message isn't duplicated. If they were stunned beforehand by something else, then the message not showing makes more sense anyways.
- return FALSE
+ if(INCAPACITATED_IGNORING(owner, INCAPABLE_RESTRAINTS|INCAPABLE_GRAB)) // So the message isn't duplicated. If they were stunned beforehand by something else, then the message not showing makes more sense anyways.
+ return
to_chat(owner, span_danger("As your [plaintext_zone] unexpectedly malfunctions, it causes you to fall to the ground!"))
return
diff --git a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm
index 05645ed20df2e..d97b00c58af68 100644
--- a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm
@@ -23,6 +23,7 @@
dmg_overlay_type = null
brute_modifier = 1.25 //ethereal are weak to brute damages
wing_types = NONE
+ bodypart_traits = list(TRAIT_NO_UNDERWEAR)
/obj/item/bodypart/chest/ethereal/update_limb(dropping_limb, is_creating)
. = ..()
diff --git a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm
index f9a71a4e6d4dd..f8619943a81ed 100644
--- a/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/species_parts/misc_bodyparts.dm
@@ -254,12 +254,14 @@
should_draw_greyscale = FALSE
head_flags = HEAD_EYESPRITES|HEAD_EYEHOLES|HEAD_DEBRAIN
teeth_count = 0
+ bodypart_traits = list(TRAIT_ANTENNAE)
/obj/item/bodypart/chest/fly
limb_id = SPECIES_FLYPERSON
is_dimorphic = TRUE
should_draw_greyscale = FALSE
wing_types = list(/obj/item/organ/external/wings/functional/fly)
+ bodypart_traits = list(TRAIT_TACKLING_FRAIL_ATTACKER)
/obj/item/bodypart/arm/left/fly
limb_id = SPECIES_FLYPERSON
diff --git a/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm
index 323cef05b8c5d..b437129db35c3 100644
--- a/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/species_parts/moth_bodyparts.dm
@@ -7,6 +7,7 @@
should_draw_greyscale = FALSE
head_flags = HEAD_LIPS|HEAD_EYESPRITES|HEAD_EYEHOLES|HEAD_DEBRAIN //what the fuck, moths have lips?
teeth_count = 0
+ bodypart_traits = list(TRAIT_ANTENNAE)
/obj/item/bodypart/chest/moth
icon = 'icons/mob/human/species/moth/bodyparts.dmi'
@@ -16,6 +17,7 @@
is_dimorphic = TRUE
should_draw_greyscale = FALSE
wing_types = list(/obj/item/organ/external/wings/functional/moth/megamoth, /obj/item/organ/external/wings/functional/moth/mothra)
+ bodypart_traits = list(TRAIT_TACKLING_WINGED_ATTACKER)
/obj/item/bodypart/chest/moth/get_butt_sprite()
return icon('icons/mob/butts.dmi', BUTT_SPRITE_FUZZY)
diff --git a/code/modules/surgery/organs/internal/liver/_liver.dm b/code/modules/surgery/organs/internal/liver/_liver.dm
index 3933a9efa5930..d71e368bdd0ff 100755
--- a/code/modules/surgery/organs/internal/liver/_liver.dm
+++ b/code/modules/surgery/organs/internal/liver/_liver.dm
@@ -1,7 +1,6 @@
#define LIVER_DEFAULT_TOX_TOLERANCE 3 //amount of toxins the liver can filter out
#define LIVER_DEFAULT_TOX_RESISTANCE 1 //lower values lower how harmful toxins are to the liver
#define LIVER_FAILURE_STAGE_SECONDS 60 //amount of seconds before liver failure reaches a new stage
-#define MAX_TOXIN_LIVER_DAMAGE 2 //the max damage the liver can receive per second (~1 min at max damage will destroy liver)
/obj/item/organ/internal/liver
name = "liver"
@@ -124,10 +123,6 @@
continue
ADD_TRAIT(replacement, readded_trait, JOB_TRAIT)
-#define HAS_SILENT_TOXIN 0 //don't provide a feedback message if this is the only toxin present
-#define HAS_NO_TOXIN 1
-#define HAS_PAINFUL_TOXIN 2
-
/obj/item/organ/internal/liver/on_life(seconds_per_tick, times_fired)
. = ..()
//If your liver is failing, then we use the liverless version of metabolize
@@ -136,34 +131,8 @@
owner.reagents.metabolize(owner, seconds_per_tick, times_fired, can_overdose = TRUE, liverless = TRUE)
return
- var/obj/belly = owner.get_organ_slot(ORGAN_SLOT_STOMACH)
- var/list/cached_reagents = owner.reagents?.reagent_list
- var/liver_damage = 0
- var/provide_pain_message = HAS_NO_TOXIN
-
- if(filterToxins && !HAS_TRAIT(owner, TRAIT_TOXINLOVER))
- for(var/datum/reagent/toxin/toxin in cached_reagents)
- if(toxin.affected_organ_flags && !(organ_flags & toxin.affected_organ_flags)) //this particular toxin does not affect this type of organ
- continue
- var/amount = toxin.volume
- if(belly)
- amount += belly.reagents.get_reagent_amount(toxin.type)
-
- // a 15u syringe is a nice baseline to scale lethality by
- liver_damage += ((amount/15) * toxin.toxpwr * toxin.liver_damage_multiplier) / liver_resistance
-
- if(provide_pain_message != HAS_PAINFUL_TOXIN)
- provide_pain_message = toxin.silent_toxin ? HAS_SILENT_TOXIN : HAS_PAINFUL_TOXIN
-
owner.reagents?.metabolize(owner, seconds_per_tick, times_fired, can_overdose = TRUE)
- if(liver_damage)
- apply_organ_damage(min(liver_damage * seconds_per_tick , MAX_TOXIN_LIVER_DAMAGE * seconds_per_tick))
-
- if(provide_pain_message && damage > 10 && SPT_PROB(damage/6, seconds_per_tick)) //the higher the damage the higher the probability
- to_chat(owner, span_warning("You feel a dull pain in your abdomen."))
-
-
/obj/item/organ/internal/liver/handle_failing_organs(seconds_per_tick)
if(HAS_TRAIT(owner, TRAIT_STABLELIVER) || HAS_TRAIT(owner, TRAIT_LIVERLESS_METABOLISM))
return
@@ -303,10 +272,6 @@
. = ..()
AddElement(/datum/element/dangerous_surgical_removal)
-#undef HAS_SILENT_TOXIN
-#undef HAS_NO_TOXIN
-#undef HAS_PAINFUL_TOXIN
#undef LIVER_DEFAULT_TOX_TOLERANCE
#undef LIVER_DEFAULT_TOX_RESISTANCE
#undef LIVER_FAILURE_STAGE_SECONDS
-#undef MAX_TOXIN_LIVER_DAMAGE
diff --git a/code/modules/surgery/organs/internal/stomach/_stomach.dm b/code/modules/surgery/organs/internal/stomach/_stomach.dm
index ba526aff2e0f7..4f1edd1542d69 100644
--- a/code/modules/surgery/organs/internal/stomach/_stomach.dm
+++ b/code/modules/surgery/organs/internal/stomach/_stomach.dm
@@ -217,6 +217,7 @@
disgusted.adjust_confusion(2.5 SECONDS)
disgusted.adjust_stutter(2 SECONDS)
disgusted.vomit(VOMIT_CATEGORY_KNOCKDOWN, distance = 0)
+ disgusted.adjust_disgust(-50)
disgusted.set_dizzy_if_lower(10 SECONDS)
if(disgust >= DISGUST_LEVEL_DISGUSTED)
if(SPT_PROB(13, seconds_per_tick))
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index 2bd8f485887f8..c0f71b57ca235 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -644,7 +644,7 @@
for(var/key in whitelist)
.["whitelist"] += whitelist[key]
-/obj/item/blood_filter/ui_act(action, params)
+/obj/item/blood_filter/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm
index f4806f7adb97c..29ea239ad84db 100644
--- a/code/modules/tgs/v5/__interop_version.dm
+++ b/code/modules/tgs/v5/__interop_version.dm
@@ -1 +1 @@
-"5.9.0"
+"5.10.0"
diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm
index 92c7a8388a711..a47bfd78000bc 100644
--- a/code/modules/tgs/v5/_defines.dm
+++ b/code/modules/tgs/v5/_defines.dm
@@ -95,6 +95,7 @@
#define DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION "newServerVersion"
#define DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE "broadcastMessage"
+#define DMAPI5_TOPIC_RESPONSE_CLIENT_COUNT "clientCount"
#define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE "commandResponse"
#define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage"
#define DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES "chatResponses"
diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm
index e1f2cb6385789..59e5e63e5cd42 100644
--- a/code/modules/tgs/v5/topic.dm
+++ b/code/modules/tgs/v5/topic.dm
@@ -149,7 +149,9 @@
if(DMAPI5_TOPIC_COMMAND_HEALTHCHECK)
if(event_handler && event_handler.receive_health_checks)
event_handler.HandleEvent(TGS_EVENT_HEALTH_CHECK)
- return TopicResponse()
+ var/list/health_check_response = TopicResponse()
+ health_check_response[DMAPI5_TOPIC_RESPONSE_CLIENT_COUNT] = TGS_CLIENT_COUNT
+ return health_check_response;
if(DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH)
detached = FALSE
diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm
index 237207fdfd056..acd19dfa6411c 100644
--- a/code/modules/tgs/v5/undefs.dm
+++ b/code/modules/tgs/v5/undefs.dm
@@ -18,7 +18,6 @@
#undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER
#undef DMAPI5_PARAMETER_CUSTOM_COMMANDS
-#undef DMAPI5_PARAMETER_TOPIC_PORT
#undef DMAPI5_CHUNK
#undef DMAPI5_CHUNK_PAYLOAD
@@ -95,6 +94,7 @@
#undef DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION
#undef DMAPI5_TOPIC_PARAMETER_BROADCAST_MESSAGE
+#undef DMAPI5_TOPIC_RESPONSE_CLIENT_COUNT
#undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE
#undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE
#undef DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES
diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm
index dc3d543f14364..a29279457a04a 100644
--- a/code/modules/tgui/states.dm
+++ b/code/modules/tgui/states.dm
@@ -67,7 +67,7 @@
else if(stat)
return UI_DISABLED
// Update UIs if incapicitated but concious.
- else if(incapacitated())
+ else if(incapacitated)
return UI_UPDATE
return UI_INTERACTIVE
diff --git a/code/modules/tgui/states/not_incapacitated.dm b/code/modules/tgui/states/not_incapacitated.dm
index f7278c86de473..ab8cd5f6246fd 100644
--- a/code/modules/tgui/states/not_incapacitated.dm
+++ b/code/modules/tgui/states/not_incapacitated.dm
@@ -29,6 +29,6 @@ GLOBAL_DATUM_INIT(not_incapacitated_turf_state, /datum/ui_state/not_incapacitate
/datum/ui_state/not_incapacitated_state/can_use_topic(src_object, mob/user)
if(user.stat != CONSCIOUS)
return UI_CLOSE
- if(HAS_TRAIT(src, TRAIT_UI_BLOCKED) || user.incapacitated() || (turf_check && !isturf(user.loc)))
+ if(HAS_TRAIT(src, TRAIT_UI_BLOCKED) || user.incapacitated || (turf_check && !isturf(user.loc)))
return UI_DISABLED
return UI_INTERACTIVE
diff --git a/code/modules/tgui/states/reverse_contained.dm b/code/modules/tgui/states/reverse_contained.dm
deleted file mode 100644
index a6d1034a78919..0000000000000
--- a/code/modules/tgui/states/reverse_contained.dm
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * Not copyrighted, but magatsuchi made it.
- *
- */
-
-/**
- * tgui state: reverse_contained_state
- *
- *
- * Checks if src_object is inside of user.
- */
-
-GLOBAL_DATUM_INIT(reverse_contained_state, /datum/ui_state/reverse_contained_state, new)
-
-/datum/ui_state/reverse_contained_state/can_use_topic(atom/src_object, mob/user)
- if(!user.contains(src_object))
- return UI_CLOSE
- return user.shared_ui_interaction(src_object)
diff --git a/code/modules/tgui_input/alert.dm b/code/modules/tgui_input/alert.dm
index 4749ef278725e..0b12184ba7a88 100644
--- a/code/modules/tgui_input/alert.dm
+++ b/code/modules/tgui_input/alert.dm
@@ -120,7 +120,7 @@
data["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS))
return data
-/datum/tgui_alert/ui_act(action, list/params)
+/datum/tgui_alert/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/tgui_input/checkboxes.dm b/code/modules/tgui_input/checkboxes.dm
index 53b264038dc20..9e548b9c13640 100644
--- a/code/modules/tgui_input/checkboxes.dm
+++ b/code/modules/tgui_input/checkboxes.dm
@@ -115,7 +115,7 @@
return data
-/datum/tgui_checkbox_input/ui_act(action, list/params)
+/datum/tgui_checkbox_input/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/tgui_input/keycombo.dm b/code/modules/tgui_input/keycombo.dm
index 948dbaea234a8..7a9e8399a8cfb 100644
--- a/code/modules/tgui_input/keycombo.dm
+++ b/code/modules/tgui_input/keycombo.dm
@@ -8,7 +8,7 @@
* * user - The user to show the number input to.
* * message - The content of the number input, shown in the body of the TGUI window.
* * title - The title of the number input modal, shown on the top of the TGUI window.
- * * default - The default (or current) key, shown as a placeholder.
+ * * default - The default (or current) key, shown as a placeholder.
*/
/proc/tgui_input_keycombo(mob/user = usr, message, title = "Key Input", default = 0, timeout = 0, ui_state = GLOB.always_state)
if (!istype(user))
@@ -107,7 +107,7 @@
data["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS))
return data
-/datum/tgui_input_keycombo/ui_act(action, list/params)
+/datum/tgui_input_keycombo/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/tgui_input/list.dm b/code/modules/tgui_input/list.dm
index 22c6d48edfc5a..fcee265e5a8b4 100644
--- a/code/modules/tgui_input/list.dm
+++ b/code/modules/tgui_input/list.dm
@@ -137,7 +137,7 @@
data["timeout"] = clamp((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS), 0, 1)
return data
-/datum/tgui_list_input/ui_act(action, list/params)
+/datum/tgui_list_input/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/tgui_input/number.dm b/code/modules/tgui_input/number.dm
index 68998acb0331f..0266610b84c99 100644
--- a/code/modules/tgui_input/number.dm
+++ b/code/modules/tgui_input/number.dm
@@ -136,7 +136,7 @@
data["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS))
return data
-/datum/tgui_input_number/ui_act(action, list/params)
+/datum/tgui_input_number/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/tgui_input/text.dm b/code/modules/tgui_input/text.dm
index 806696dcf4f44..ec94fbd6766ac 100644
--- a/code/modules/tgui_input/text.dm
+++ b/code/modules/tgui_input/text.dm
@@ -133,7 +133,7 @@
data["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS))
return data
-/datum/tgui_input_text/ui_act(action, list/params)
+/datum/tgui_input_text/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/transport/elevator/elev_panel.dm b/code/modules/transport/elevator/elev_panel.dm
index 0b5e99bdbb059..659049a7448ca 100644
--- a/code/modules/transport/elevator/elev_panel.dm
+++ b/code/modules/transport/elevator/elev_panel.dm
@@ -299,7 +299,7 @@
return data
-/obj/machinery/elevator_control_panel/ui_act(action, list/params)
+/obj/machinery/elevator_control_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/transport/tram/tram_controller.dm b/code/modules/transport/tram/tram_controller.dm
index 1323953de78f7..11b3bbcdec9e9 100644
--- a/code/modules/transport/tram/tram_controller.dm
+++ b/code/modules/transport/tram/tram_controller.dm
@@ -1096,7 +1096,7 @@
return data
-/obj/machinery/transport/tram_controller/ui_act(action, params)
+/obj/machinery/transport/tram_controller/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/transport/tram/tram_controls.dm b/code/modules/transport/tram/tram_controls.dm
index 0bfce56aa5c96..308e58cf5f049 100644
--- a/code/modules/transport/tram/tram_controls.dm
+++ b/code/modules/transport/tram/tram_controls.dm
@@ -130,7 +130,7 @@
this_destination["id"] = destination.platform_code
. += list(this_destination)
-/obj/machinery/computer/tram_controls/ui_act(action, params)
+/obj/machinery/computer/tram_controls/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/transport/tram/tram_signals.dm b/code/modules/transport/tram/tram_signals.dm
index faf4a46e11e28..a5d309b8378b0 100644
--- a/code/modules/transport/tram/tram_signals.dm
+++ b/code/modules/transport/tram/tram_signals.dm
@@ -150,8 +150,8 @@
. += span_notice("The orange [EXAMINE_HINT("remote warning")] light is on.")
. += span_notice("The status display reads: Check track sensor.")
if(TRANSPORT_REMOTE_FAULT)
- . += span_notice("The blue [EXAMINE_HINT("remote fault")] light is on.")
- . += span_notice("The status display reads: Check tram controller.")
+ . += span_notice("The blue [EXAMINE_HINT("telecoms failure")] light is on.")
+ . += span_notice("The status display reads: Check telecommunications network.")
if(TRANSPORT_LOCAL_FAULT)
. += span_notice("The red [EXAMINE_HINT("local fault")] light is on.")
. += span_notice("The status display reads: Repair required.")
@@ -246,10 +246,10 @@
operating_status = TRANSPORT_REMOTE_FAULT
else
operating_status = TRANSPORT_SYSTEM_NORMAL
+ if(isnull(linked_sensor))
+ link_sensor()
+ wake_sensor()
- if(isnull(linked_sensor))
- link_sensor()
- wake_sensor()
update_operating()
/obj/machinery/transport/crossing_signal/on_set_machine_stat()
@@ -304,6 +304,8 @@
// degraded signal operating conditions of any type show blue
var/idle_aspect = operating_status == TRANSPORT_SYSTEM_NORMAL ? XING_STATE_GREEN : XING_STATE_MALF
var/datum/transport_controller/linear/tram/tram = transport_ref?.resolve()
+ if(tram.controller_status & COMM_ERROR)
+ idle_aspect = XING_STATE_MALF
// Check for stopped states. Will kill the process since tram starting up will restart process.
if(!tram || !tram.controller_operational || !tram.controller_active || !is_operational || !inbound || !outbound)
diff --git a/code/modules/transport/transport_module.dm b/code/modules/transport/transport_module.dm
index af8f4199438db..01a3493130501 100644
--- a/code/modules/transport/transport_module.dm
+++ b/code/modules/transport/transport_module.dm
@@ -612,7 +612,7 @@
if(!isliving(user))
return FALSE
// Gotta be awake and aware
- if(user.incapacitated())
+ if(user.incapacitated)
return FALSE
// Maintain the god given right to fight an elevator
if(user.combat_mode)
@@ -704,7 +704,7 @@
* * boolean, FALSE if the menu should be closed, TRUE if the menu is clear to stay opened.
*/
/obj/structure/transport/linear/proc/check_menu(mob/user, starting_loc)
- if(user.incapacitated() || !user.Adjacent(src) || starting_loc != src.loc)
+ if(user.incapacitated || !user.Adjacent(src) || starting_loc != src.loc)
return FALSE
return TRUE
diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm
index a42c25dc94ee1..95b7f4a4634d8 100644
--- a/code/modules/unit_tests/_unit_tests.dm
+++ b/code/modules/unit_tests/_unit_tests.dm
@@ -107,6 +107,7 @@
#include "breath.dm"
#include "burning.dm"
#include "cable_powernets.dm"
+#include "can_see.dm"
#include "card_mismatch.dm"
#include "cardboard_cutouts.dm"
#include "cargo_dep_order_locations.dm"
@@ -150,6 +151,7 @@
#include "gas_transfer.dm"
#include "get_turf_pixel.dm"
#include "geyser.dm"
+#include "gloves_and_shoes_armor.dm"
#include "greyscale_config.dm"
#include "hallucination_icons.dm"
#include "heretic_knowledge.dm"
diff --git a/code/modules/unit_tests/can_see.dm b/code/modules/unit_tests/can_see.dm
new file mode 100644
index 0000000000000..cb7f7bef047ee
--- /dev/null
+++ b/code/modules/unit_tests/can_see.dm
@@ -0,0 +1,7 @@
+/// Unit test to make sure can_see is working properly
+/datum/unit_test/can_see_test
+
+/datum/unit_test/can_see_test/Run()
+ var/mob/living/carbon/human/observer = allocate(/mob/living/carbon/human/consistent, run_loc_floor_bottom_left) //make sure they're both apart
+ var/mob/living/carbon/human/to_be_seen = allocate(/mob/living/carbon/human/consistent, run_loc_floor_top_right)
+ TEST_ASSERT(can_see(observer, to_be_seen, get_dist(observer, to_be_seen)), "can_see returned false despite dummies being able to see one another!")
diff --git a/code/modules/unit_tests/fish_unit_tests.dm b/code/modules/unit_tests/fish_unit_tests.dm
index 5cb582ca9694a..2fb2487f7810d 100644
--- a/code/modules/unit_tests/fish_unit_tests.dm
+++ b/code/modules/unit_tests/fish_unit_tests.dm
@@ -1,5 +1,21 @@
#define TRAIT_FISH_TESTING "made_you_read_this"
+///Ensures that all fish have an aquarium icon state and that sprite_width and sprite_height have been set.
+/datum/unit_test/fish_aquarium_icons
+
+/datum/unit_test/fish_aquarium_icons/Run()
+ for(var/obj/item/fish/fish as anything in subtypesof(/obj/item/fish))
+ if(ispath(fish, /obj/item/fish/testdummy)) //We don't care about unit test fish.
+ continue
+ var/init_icon = fish::dedicated_in_aquarium_icon
+ var/init_icon_state = fish::dedicated_in_aquarium_icon_state || "[fish::icon_state]_small"
+ if(!icon_exists(init_icon, init_icon_state))
+ TEST_FAIL("[fish] with doesn't have a \"[init_icon_state]\" aquarium icon state in [init_icon]. Please make one.")
+ if(!fish::sprite_width)
+ TEST_FAIL("[fish] doesn't have a set sprite_width.")
+ if(!fish::sprite_height)
+ TEST_FAIL("[fish] doesn't have a set sprite_height.")
+
///Checks that things associated with fish size and weight work correctly.
/datum/unit_test/fish_size_weight
@@ -76,10 +92,11 @@
incompatible_traits = list(/datum/fish_trait/dummy/two)
inheritability = 100
diff_traits_inheritability = 100
+ reagents_to_add = list(/datum/reagent = 10)
/datum/fish_trait/dummy/apply_to_fish(obj/item/fish/fish)
+ . = ..()
ADD_TRAIT(fish, TRAIT_FISH_TESTING, FISH_TRAIT_DATUM)
- fish.grind_results[/datum/reagent] = 10
/datum/fish_trait/dummy/two
incompatible_traits = list(/datum/fish_trait/dummy)
@@ -259,15 +276,17 @@
/datum/unit_test/explosive_fishing/Run()
var/datum/fish_source/source = GLOB.preset_fish_sources[/datum/fish_source/unit_test]
source.spawn_reward_from_explosion(run_loc_floor_bottom_left, 1)
- if(length(source.fish_table))
+ if(source.fish_counts[/obj/item/wrench])
TEST_FAIL("The unit test item wasn't removed/spawned from fish_table during 'spawn_reward_from_explosion'.")
/datum/fish_source/unit_test
fish_table = list(
/obj/item/wrench = 1,
+ /obj/item/screwdriver = INFINITY,
)
fish_counts = list(
/obj/item/wrench = 1,
+ /obj/item/screwdriver = 0,
)
#undef TRAIT_FISH_TESTING
diff --git a/code/modules/unit_tests/gloves_and_shoes_armor.dm b/code/modules/unit_tests/gloves_and_shoes_armor.dm
new file mode 100644
index 0000000000000..fc67b21537e0b
--- /dev/null
+++ b/code/modules/unit_tests/gloves_and_shoes_armor.dm
@@ -0,0 +1,25 @@
+/// Checks if any gloves or shoes that have non bio/fire/acid armor haven't been marked with ARMS or LEGS coverage respectively
+/datum/unit_test/gloves_and_shoes_armor
+
+/datum/unit_test/gloves_and_shoes_armor/Run()
+ for (var/obj/item/clothing/gloves/gloves as anything in subtypesof(/obj/item/clothing/gloves))
+ var/datum/armor/armor = gloves::armor_type
+ if (!armor)
+ continue
+
+ if (gloves::body_parts_covered != HANDS)
+ continue
+
+ if (armor::melee || armor::bomb || armor::energy || armor::laser || armor::bullet || armor::wound)
+ TEST_FAIL("[gloves] has non-bio/acid/fire armor but doesn't cover non-hand bodyparts.")
+
+ for (var/obj/item/clothing/shoes/shoes as anything in subtypesof(/obj/item/clothing/shoes))
+ var/datum/armor/armor = shoes::armor_type
+ if (!armor)
+ continue
+
+ if (shoes::body_parts_covered != FEET)
+ continue
+
+ if (armor::melee || armor::bomb || armor::energy || armor::laser || armor::bullet || armor::wound)
+ TEST_FAIL("[shoes] has non-bio/acid/fire armor but doesn't cover non-feet bodyparts.")
diff --git a/code/modules/unit_tests/mecha_damage.dm b/code/modules/unit_tests/mecha_damage.dm
index dc5f4ecae8a1d..9dd82dddc41ec 100644
--- a/code/modules/unit_tests/mecha_damage.dm
+++ b/code/modules/unit_tests/mecha_damage.dm
@@ -25,7 +25,8 @@
// Get a sample "melee" weapon.
// The energy axe is chosen here due to having a high base force, to make sure we get over the equipment DT.
var/obj/item/dummy_melee = allocate(/obj/item/melee/energy/axe)
- var/expected_melee_damage = round(dummy_melee.force * (1 - expected_melee_armor / 100) * dummy_melee.demolition_mod, DAMAGE_PRECISION)
+ dummy_melee.force = 150
+ var/expected_melee_damage = round(dummy_melee.force * (1 - expected_melee_armor / 100) * dummy_melee.demolition_mod * demo_mech.facing_modifiers[MECHA_FRONT_ARMOUR], DAMAGE_PRECISION)
// Get a sample laser weapon.
// The captain's laser gun here is chosen primarily because it deals more damage than normal lasers.
diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm
index 36fc4570540f4..d0de12a7b204b 100644
--- a/code/modules/unit_tests/outfit_sanity.dm
+++ b/code/modules/unit_tests/outfit_sanity.dm
@@ -87,4 +87,13 @@
if (!H.equip_to_slot_or_del(new path(H), ITEM_SLOT_BACKPACK, TRUE, indirect_action = TRUE))
TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.")
+ if (outfit.belt_contents)
+ var/list/belt_contents = outfit.belt_contents?.Copy()
+ for (var/path in belt_contents)
+ var/number = belt_contents[path] || 1
+ for (var/_ in 1 to number)
+ if (!H.equip_to_slot_or_del(new path(H), ITEM_SLOT_BELTPACK, TRUE, indirect_action = TRUE))
+ TEST_FAIL("[outfit.name]'s belt_contents are invalid! Couldn't add [path] to backpack.")
+
+
#undef CHECK_OUTFIT_SLOT
diff --git a/code/modules/unit_tests/say.dm b/code/modules/unit_tests/say.dm
index 7536392e70cd4..a845b6ccf9886 100644
--- a/code/modules/unit_tests/say.dm
+++ b/code/modules/unit_tests/say.dm
@@ -237,9 +237,9 @@
// Normally speaking, if there isn't a functional telecomms array on the same z-level, then handheld radios
// have a short delay before sending the message. We use the centcom frequency to get around this.
speaker_radio.set_frequency(FREQ_CENTCOM)
- speaker_radio.independent = TRUE
+ speaker_radio.special_channels = RADIO_SPECIAL_CENTCOM
listener_radio.set_frequency(FREQ_CENTCOM)
- listener_radio.independent = TRUE
+ listener_radio.special_channels = RADIO_SPECIAL_CENTCOM
var/pangram_quote = "The quick brown fox jumps over the lazy dog"
diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm
index ed2510b829434..84c0fa20a678b 100644
--- a/code/modules/unit_tests/unit_test.dm
+++ b/code/modules/unit_tests/unit_test.dm
@@ -112,6 +112,16 @@ GLOBAL_VAR_INIT(focused_tests, focused_tests())
allocated += instance
return instance
+/// Resets the air of our testing room to its default
+/datum/unit_test/proc/restore_atmos()
+ var/area/working_area = run_loc_floor_bottom_left.loc
+ var/list/turf/to_restore = working_area.get_turfs_from_all_zlevels()
+ for(var/turf/open/restore in to_restore)
+ var/datum/gas_mixture/GM = SSair.parse_gas_string(restore.initial_gas_mix, /datum/gas_mixture/turf)
+ restore.copy_air(GM)
+ restore.temperature = initial(restore.temperature)
+ restore.air_update_turf(update = FALSE, remove = FALSE)
+
/datum/unit_test/proc/test_screenshot(name, icon/icon)
if (!istype(icon))
TEST_FAIL("[icon] is not an icon.")
@@ -179,6 +189,7 @@ GLOBAL_VAR_INIT(focused_tests, focused_tests())
else
test.Run()
+ test.restore_atmos()
duration = REALTIMEOFDAY - duration
GLOB.current_test = null
diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm
index 7e501217eb68c..0d347709536ee 100644
--- a/code/modules/uplink/uplink_items.dm
+++ b/code/modules/uplink/uplink_items.dm
@@ -172,6 +172,8 @@
ADD_TRAIT(created, TRAIT_CONTRABAND, INNATE_TRAIT)
for(var/obj/contained as anything in created.get_all_contents())
ADD_TRAIT(contained, TRAIT_CONTRABAND, INNATE_TRAIT)
+
+ if(isgun(created))
replace_pin(created)
else if(istype(created, /obj/item/storage/toolbox/guncase))
for(var/obj/item/gun/gun in created)
diff --git a/code/modules/uplink/uplink_items/badass.dm b/code/modules/uplink/uplink_items/badass.dm
index 08cf3affe0741..5c5e0390b5046 100644
--- a/code/modules/uplink/uplink_items/badass.dm
+++ b/code/modules/uplink/uplink_items/badass.dm
@@ -91,7 +91,7 @@
/datum/uplink_item/badass/stickers
name = "Syndicate Sticker Pack"
desc = "Contains 8 random stickers precisely engineered to resemble suspicious objects, which may or may not be useful for fooling crew."
- item = /obj/item/storage/box/syndie_kit/stickers
+ item = /obj/item/storage/box/stickers/syndie_kit
cost = 1
/datum/uplink_item/badass/demotivational_posters
diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm
index b64e8a11706b4..be9d558687d8c 100644
--- a/code/modules/uplink/uplink_items/job.dm
+++ b/code/modules/uplink/uplink_items/job.dm
@@ -389,5 +389,6 @@
restricted_roles = list(JOB_MIME)
restricted = TRUE
refundable = FALSE
+ progression_minimum = 30 MINUTES
purchasable_from = parent_type::purchasable_from & ~UPLINK_SPY
diff --git a/code/modules/uplink/uplink_items/stealthy.dm b/code/modules/uplink/uplink_items/stealthy.dm
index e4c4de412fb44..6bd315498afa1 100644
--- a/code/modules/uplink/uplink_items/stealthy.dm
+++ b/code/modules/uplink/uplink_items/stealthy.dm
@@ -29,6 +29,12 @@
item = /obj/item/pen/edagger
cost = 2
+/datum/uplink_item/stealthy_weapons/slipstick
+ name = "Syndie Lipstick"
+ desc = "Stylish way to kiss to death, isn't it syndiekisser?"
+ item = /obj/item/lipstick/syndie
+ cost = 6
+
/datum/uplink_item/stealthy_weapons/traitor_chem_bottle
name = "Poison Kit"
desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application."
diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm
index d28b510328a98..846d6a6434b1e 100644
--- a/code/modules/vehicles/mecha/_mecha.dm
+++ b/code/modules/vehicles/mecha/_mecha.dm
@@ -586,7 +586,7 @@
/obj/vehicle/sealed/mecha/proc/process_occupants(seconds_per_tick)
for(var/mob/living/occupant as anything in occupants)
- if(!(mecha_flags & IS_ENCLOSED) && occupant?.incapacitated()) //no sides mean it's easy to just sorta fall out if you're incapacitated.
+ if(!(mecha_flags & IS_ENCLOSED) && occupant?.incapacitated) //no sides mean it's easy to just sorta fall out if you're incapacitated.
mob_exit(occupant, randomstep = TRUE) //bye bye
continue
if(cell && cell.maxcharge)
@@ -658,7 +658,7 @@
if(phasing)
balloon_alert(user, "not while [phasing]!")
return
- if(user.incapacitated())
+ if(user.incapacitated)
return
if(!get_charge())
return
diff --git a/code/modules/vehicles/mecha/combat/durand.dm b/code/modules/vehicles/mecha/combat/durand.dm
index c6fcae75bc98f..a466bc30d2245 100644
--- a/code/modules/vehicles/mecha/combat/durand.dm
+++ b/code/modules/vehicles/mecha/combat/durand.dm
@@ -50,7 +50,7 @@
/obj/vehicle/sealed/mecha/durand/process()
. = ..()
- if(defense_mode && !use_energy(100 KILO JOULES)) //Defence mode can only be on with a occupant so we check if one of them can toggle it and toggle
+ if(defense_mode && !use_energy(0.01 * STANDARD_CELL_CHARGE)) //Defence mode can only be on with a occupant so we check if one of them can toggle it and toggle
for(var/O in occupants)
var/mob/living/occupant = O
var/datum/action/action = LAZYACCESSASSOC(occupant_actions, occupant, /datum/action/vehicle/sealed/mecha/mech_defense_mode)
@@ -82,7 +82,6 @@
stack_trace("Durand triggered relay without a shield")
shield = new /obj/durand_shield(loc, src, layer)
shield.setDir(dir)
- SEND_SIGNAL(shield, COMSIG_MECHA_ACTION_TRIGGER, owner, signal_args)
//Redirects projectiles to the shield if defense_check decides they should be blocked and returns true.
/obj/vehicle/sealed/mecha/durand/proc/prehit(obj/projectile/source, list/signal_args)
@@ -144,6 +143,8 @@ Expects a turf. Returns true if the attack should be blocked, false if not.*/
button_icon_state = "mech_defense_mode_off"
/datum/action/vehicle/sealed/mecha/mech_defense_mode/Trigger(trigger_flags, forced_state = FALSE)
+ if(!owner || !chassis || !(owner in chassis.occupants))
+ return
SEND_SIGNAL(chassis, COMSIG_MECHA_ACTION_TRIGGER, owner, args) //Signal sent to the mech, to be handed to the shield. See durand.dm for more details
////////////////////////////
@@ -165,9 +166,9 @@ own integrity back to max. Shield is automatically dropped if we run out of powe
max_integrity = 10000
anchored = TRUE
light_system = OVERLAY_LIGHT
- light_range = MINIMUM_USEFUL_LIGHT_RANGE
- light_power = 2
- light_color = LIGHT_COLOR_ELECTRIC_CYAN
+ light_range = 2.8
+ light_power = 1
+ light_color = LIGHT_COLOR_FAINT_CYAN
light_on = FALSE
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF //The shield should not take damage from fire, lava, or acid; that's the mech's job.
///Our link back to the durand
@@ -181,7 +182,7 @@ own integrity back to max. Shield is automatically dropped if we run out of powe
src.layer = ABOVE_MOB_LAYER
SET_PLANE_IMPLICIT(src, plane)
setDir(dir)
- RegisterSignal(src, COMSIG_MECHA_ACTION_TRIGGER, PROC_REF(activate))
+ RegisterSignal(chassis, COMSIG_MECHA_ACTION_TRIGGER, PROC_REF(activate))
RegisterSignal(chassis, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(shield_glide_size_update))
/obj/durand_shield/Destroy()
diff --git a/code/modules/vehicles/mecha/equipment/tools/radio.dm b/code/modules/vehicles/mecha/equipment/tools/radio.dm
index 33a113a8274f5..18740fc22b9bd 100644
--- a/code/modules/vehicles/mecha/equipment/tools/radio.dm
+++ b/code/modules/vehicles/mecha/equipment/tools/radio.dm
@@ -36,7 +36,7 @@
return TRUE
if("set_frequency")
var/new_frequency = text2num(params["new_frequency"])
- radio.set_frequency(sanitize_frequency(new_frequency, radio.freerange, radio.syndie))
+ radio.set_frequency(sanitize_frequency(new_frequency, radio.freerange, (radio.special_channels & RADIO_SPECIAL_SYNDIE)))
return TRUE
return FALSE
diff --git a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm
index 34216db38d3cd..c19aede50d93b 100644
--- a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm
+++ b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm
@@ -55,7 +55,7 @@
if(istype(target, /obj/machinery/door/firedoor) || istype(target, /obj/machinery/door/airlock))
var/obj/machinery/door/target_door = target
playsound(chassis, clampsound, 50, FALSE, -6)
- target_door.try_to_crowbar(src, source)
+ target_door.try_to_crowbar(src, source, TRUE)
return ..()
if(isobj(target))
diff --git a/code/modules/vehicles/mecha/mech_bay.dm b/code/modules/vehicles/mecha/mech_bay.dm
index 5166b9c5fdfc5..c9f0aa20fa736 100644
--- a/code/modules/vehicles/mecha/mech_bay.dm
+++ b/code/modules/vehicles/mecha/mech_bay.dm
@@ -114,7 +114,7 @@
ui = new(user, src, "MechBayPowerConsole", name)
ui.open()
-/obj/machinery/computer/mech_bay_power_console/ui_act(action, params)
+/obj/machinery/computer/mech_bay_power_console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm
index b4c292202542e..b167f38141594 100644
--- a/code/modules/vehicles/mecha/mech_fabricator.dm
+++ b/code/modules/vehicles/mecha/mech_fabricator.dm
@@ -427,7 +427,7 @@
return data
-/obj/machinery/mecha_part_fabricator/ui_act(action, list/params)
+/obj/machinery/mecha_part_fabricator/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
diff --git a/code/modules/vehicles/mecha/mecha_control_console.dm b/code/modules/vehicles/mecha/mecha_control_console.dm
index 3b465994e9e02..d31bd5a5bd290 100644
--- a/code/modules/vehicles/mecha/mecha_control_console.dm
+++ b/code/modules/vehicles/mecha/mecha_control_console.dm
@@ -45,7 +45,7 @@
return data
-/obj/machinery/computer/mecha/ui_act(action, params)
+/obj/machinery/computer/mecha/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/vehicles/mecha/mecha_defense.dm b/code/modules/vehicles/mecha/mecha_defense.dm
index 912993d1ee640..1237c931b33a5 100644
--- a/code/modules/vehicles/mecha/mecha_defense.dm
+++ b/code/modules/vehicles/mecha/mecha_defense.dm
@@ -317,7 +317,7 @@
if(!attacking_item.force)
return
- var/damage_taken = take_damage(attacking_item.force * attacking_item.demolition_mod, attacking_item.damtype, MELEE, 1)
+ var/damage_taken = take_damage(attacking_item.force * attacking_item.demolition_mod, attacking_item.damtype, MELEE, 1, get_dir(src, user))
try_damage_component(damage_taken, user.zone_selected)
var/hit_verb = length(attacking_item.attack_verb_simple) ? "[pick(attacking_item.attack_verb_simple)]" : "hit"
diff --git a/code/modules/vehicles/mecha/mecha_mob_interaction.dm b/code/modules/vehicles/mecha/mecha_mob_interaction.dm
index 7a9141e80c1a7..a1e398f6f90cf 100644
--- a/code/modules/vehicles/mecha/mecha_mob_interaction.dm
+++ b/code/modules/vehicles/mecha/mecha_mob_interaction.dm
@@ -20,7 +20,7 @@
moved_inside(M)
/obj/vehicle/sealed/mecha/enter_checks(mob/M)
- if(M.incapacitated())
+ if(M.incapacitated)
return FALSE
if(atom_integrity <= 0)
to_chat(M, span_warning("You cannot get in the [src], it has been destroyed!"))
diff --git a/code/modules/vehicles/mecha/mecha_ui.dm b/code/modules/vehicles/mecha/mecha_ui.dm
index 1113a85381361..3c06c901e4e1f 100644
--- a/code/modules/vehicles/mecha/mecha_ui.dm
+++ b/code/modules/vehicles/mecha/mecha_ui.dm
@@ -121,26 +121,26 @@
))
if(ui_selected_module_index == module_index)
ui_selected_module_index = null
- continue
- var/obj/item/mecha_parts/mecha_equipment/module = islist(equipment) ? equipment[i] : equipment
- data += list(list(
- "slot" = category,
- "icon" = module.icon_state,
- "name" = module.name,
- "desc" = module.desc,
- "detachable" = module.detachable,
- "integrity" = (module.get_integrity()/module.max_integrity),
- "can_be_toggled" = module.can_be_toggled,
- "can_be_triggered" = module.can_be_triggered,
- "active" = module.active,
- "active_label" = module.active_label,
- "equip_cooldown" = module.equip_cooldown && DisplayTimeText(module.equip_cooldown),
- "energy_per_use" = module.energy_drain,
- "snowflake" = module.get_snowflake_data(),
- "ref" = REF(module),
- ))
- if(isnull(ui_selected_module_index))
- ui_selected_module_index = module_index
+ else
+ var/obj/item/mecha_parts/mecha_equipment/module = islist(equipment) ? equipment[i] : equipment
+ data += list(list(
+ "slot" = category,
+ "icon" = module.icon_state,
+ "name" = module.name,
+ "desc" = module.desc,
+ "detachable" = module.detachable,
+ "integrity" = (module.get_integrity()/module.max_integrity),
+ "can_be_toggled" = module.can_be_toggled,
+ "can_be_triggered" = module.can_be_triggered,
+ "active" = module.active,
+ "active_label" = module.active_label,
+ "equip_cooldown" = module.equip_cooldown && DisplayTimeText(module.equip_cooldown),
+ "energy_per_use" = module.energy_drain,
+ "snowflake" = module.get_snowflake_data(),
+ "ref" = REF(module),
+ ))
+ if(isnull(ui_selected_module_index))
+ ui_selected_module_index = module_index
module_index++
return data
diff --git a/code/modules/vehicles/mecha/working/clarke.dm b/code/modules/vehicles/mecha/working/clarke.dm
index 2ec0b4a473648..0acfa2749a5bd 100644
--- a/code/modules/vehicles/mecha/working/clarke.dm
+++ b/code/modules/vehicles/mecha/working/clarke.dm
@@ -77,22 +77,26 @@
/obj/item/mecha_parts/mecha_equipment/orebox_manager/get_snowflake_data()
var/list/contents = chassis.ore_box?.contents
var/list/contents_grouped = list()
- for(var/obj/item/stack/ore/item as anything in contents)
+ for(var/atom/movable/item as anything in contents)
+ var/amount = 1
+ if(isstack(item))
+ var/obj/item/stack/stack = item
+ amount = stack.amount
if(isnull(contents_grouped[item.icon_state]))
var/ore_data = list()
ore_data["name"] = item.name
ore_data["icon"] = item.icon_state
- ore_data["amount"] = item.amount
+ ore_data["amount"] = amount
contents_grouped[item.icon_state] = ore_data
else
- contents_grouped[item.icon_state]["amount"] += item.amount
+ contents_grouped[item.icon_state]["amount"] += amount
var/list/data = list(
"snowflake_id" = MECHA_SNOWFLAKE_ID_OREBOX_MANAGER,
"contents" = contents_grouped,
)
return data
-/obj/item/mecha_parts/mecha_equipment/orebox_manager/ui_act(action, list/params)
+/obj/item/mecha_parts/mecha_equipment/orebox_manager/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return TRUE
diff --git a/code/modules/vehicles/mecha/working/ripley.dm b/code/modules/vehicles/mecha/working/ripley.dm
index 754a6b820d721..f5c55f613ee10 100644
--- a/code/modules/vehicles/mecha/working/ripley.dm
+++ b/code/modules/vehicles/mecha/working/ripley.dm
@@ -338,7 +338,7 @@ GLOBAL_DATUM(cargo_ripley, /obj/vehicle/sealed/mecha/ripley/cargo)
))
return data
-/obj/item/mecha_parts/mecha_equipment/ejector/ui_act(action, list/params)
+/obj/item/mecha_parts/mecha_equipment/ejector/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return TRUE
@@ -382,7 +382,7 @@ GLOBAL_DATUM(cargo_ripley, /obj/vehicle/sealed/mecha/ripley/cargo)
to_chat(source, span_warning("You don't have the room to remove [cuffs]!"))
return COMSIG_MOB_BLOCK_CUFF_REMOVAL
-/obj/item/mecha_parts/mecha_equipment/ejector/seccage/ui_act(action, list/params)
+/obj/item/mecha_parts/mecha_equipment/ejector/seccage/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
if(action == "eject")
var/mob/passenger = locate(params["cargoref"]) in contents
if(!passenger)
diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm
index 82146976ad1f8..25e8ed9740943 100644
--- a/code/modules/vehicles/scooter.dm
+++ b/code/modules/vehicles/scooter.dm
@@ -169,7 +169,7 @@
pick_up_board(skater)
/obj/vehicle/ridden/scooter/skateboard/proc/pick_up_board(mob/living/carbon/skater)
- if (skater.incapacitated() || !Adjacent(skater))
+ if (skater.incapacitated || !Adjacent(skater))
return
if(has_buckled_mobs())
to_chat(skater, span_warning("You can't lift this up when somebody's on it."))
diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm
index 2a27433bdee6d..9299c77347d8c 100644
--- a/code/modules/vending/_vending.dm
+++ b/code/modules/vending/_vending.dm
@@ -831,7 +831,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock)
* Args:
* * turf/target: The turf to fall onto. Cannot be null.
* * damage: The raw numerical damage to do by default.
- * * chance_to_crit: The percent chance of a critical hit occuring. Default: 0
+ * * chance_to_crit: The percent chance of a critical hit occurring. Default: 0
* * forced_crit_case: If given a value from crushing.dm, [target] and its contents will always be hit with that specific critical hit. Default: null
* * paralyze_time: The time, in deciseconds, a given mob/living will be paralyzed for if crushed.
* * crush_dir: The direction the crush is coming from. Default: dir of src to [target].
@@ -988,7 +988,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock)
var/list/weighted_crits = list()
weighted_crits[CRUSH_CRIT_SHATTER_LEGS] = 100
- weighted_crits[CRUSH_CRIT_PARAPALEGIC] = 80
+ weighted_crits[CRUSH_CRIT_PARAPLEGIC] = 80
weighted_crits[CRUSH_CRIT_HEADGIB] = 20
weighted_crits[CRUSH_CRIT_SQUISH_LIMB] = 100
@@ -1027,7 +1027,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock)
if(left_leg || right_leg)
carbon_target.visible_message(span_danger("[carbon_target]'s legs shatter with a sickening crunch!"), span_userdanger("Your legs shatter with a sickening crunch!"))
return TRUE
- if(CRUSH_CRIT_PARAPALEGIC) // paralyze this binch
+ if(CRUSH_CRIT_PARAPLEGIC) // paralyze this binch
// the new paraplegic gets like 4 lines of losing their legs so skip them
if (!iscarbon(atom_target))
return FALSE
@@ -1184,17 +1184,19 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock)
return TRUE
/obj/machinery/vending/interact(mob/user)
- if (!HAS_AI_ACCESS(user))
- if(seconds_electrified && !(machine_stat & NOPOWER))
- if(shock(user, 100))
- return
+ if (HAS_AI_ACCESS(user))
+ return ..()
- if(tilted && !user.buckled && !isAdminGhostAI(user))
- to_chat(user, span_notice("You begin righting [src]."))
- if(do_after(user, 5 SECONDS, target=src))
- untilt(user)
+ if(seconds_electrified && !(machine_stat & NOPOWER))
+ if(shock(user, 100))
return
+ if(tilted && !user.buckled)
+ to_chat(user, span_notice("You begin righting [src]."))
+ if(do_after(user, 5 SECONDS, target=src))
+ untilt(user)
+ return
+
return ..()
/obj/machinery/vending/attack_robot_secondary(mob/user, list/modifiers)
@@ -1317,7 +1319,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock)
.["extended_inventory"] = extended_inventory
-/obj/machinery/vending/ui_act(action, params)
+/obj/machinery/vending/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -1771,7 +1773,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock)
)
.["vending_machine_input"] += list(data)
-/obj/machinery/vending/custom/ui_act(action, params)
+/obj/machinery/vending/custom/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm
index 8b9f704569545..8211b05553d8b 100644
--- a/code/modules/vending/autodrobe.dm
+++ b/code/modules/vending/autodrobe.dm
@@ -195,13 +195,14 @@ GLOBAL_LIST_INIT(autodrobe_contraband_items, list(
/obj/item/clothing/head/costume/powdered_wig = 1,
/obj/item/clothing/head/costume/tv_head = 1,
/obj/item/clothing/mask/muzzle = 2,
- /obj/item/clothing/shoes/ducky_shoes = 1,
/obj/item/clothing/shoes/clown_shoes/meown_shoes = 1,
/obj/item/clothing/shoes/clown_shoes/moffers = 1,
+ /obj/item/clothing/shoes/ducky_shoes = 1,
/obj/item/clothing/suit/costume/judgerobe = 1,
/obj/item/clothing/head/costume/lobsterhat = 1,
/obj/item/clothing/under/costume/lobster = 1,
/obj/item/gun/magic/wand/nothing = 2,
+ /obj/item/skillchip/musical = 3,
/obj/item/storage/box/tape_wizard = 1,
))
diff --git a/code/modules/vending/cytopro.dm b/code/modules/vending/cytopro.dm
new file mode 100644
index 0000000000000..ce351be7769da
--- /dev/null
+++ b/code/modules/vending/cytopro.dm
@@ -0,0 +1,35 @@
+/obj/machinery/vending/cytopro
+ name = "\improper CytoPro"
+ desc = "For all your cytology needs!"
+ product_slogans = "Cloning? Don't be ridiculous.;Don't be uncultured, get some cells growing!;Who needs farms when we got vats?"
+ product_ads = "Grow your own little creatures!;Biology, at your fingertips!"
+ icon_state = "cytopro"
+ icon_deny = "cytopro-deny"
+ panel_type = "panel2"
+ light_mask = "cytopro-light-mask"
+ products = list(
+ /obj/item/storage/bag/xeno = 5,
+ /obj/item/reagent_containers/condiment/protein = 10,
+ /obj/item/storage/box/swab = 3,
+ /obj/item/storage/box/petridish = 3,
+ /obj/item/storage/box/monkeycubes = 3,
+ /obj/item/biopsy_tool = 3,
+ /obj/item/clothing/under/rank/rnd/scientist = 5,
+ /obj/item/clothing/suit/toggle/labcoat/science = 5,
+ /obj/item/clothing/suit/bio_suit/scientist = 3,
+ /obj/item/clothing/head/bio_hood/scientist = 3,
+ /obj/item/reagent_containers/dropper = 5,
+ /obj/item/reagent_containers/syringe = 5,
+ /obj/item/petri_dish/random = 6,
+ )
+ contraband = list(
+ /obj/item/knife/kitchen = 3,
+ )
+ refill_canister = /obj/item/vending_refill/cytopro
+ default_price = PAYCHECK_CREW * 1
+ extra_price = PAYCHECK_COMMAND * 0.5
+ payment_department = ACCOUNT_SCI
+
+/obj/item/vending_refill/cytopro
+ machine_name = "CytoPro"
+ icon_state = "refill_plant"
diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm
index 33fefd08d2e79..d1a237eaf640f 100644
--- a/code/modules/vending/games.dm
+++ b/code/modules/vending/games.dm
@@ -58,6 +58,7 @@
/obj/item/skillchip/sabrage = 2,
/obj/item/skillchip/useless_adapter = 5,
/obj/item/skillchip/wine_taster = 2,
+ /obj/item/skillchip/big_pointer = 2,
),
),
list(
@@ -66,7 +67,7 @@
"products" = list(
/obj/item/camera = 3,
/obj/item/camera_film = 5,
- /obj/item/cardpack/resin = 20, //Both card packs have had their count raised to 20 from 10 until card persistance is implimented.
+ /obj/item/cardpack/resin = 20, //Both card packs have had their count raised to 20 from 10 until card persistence is implemented.
/obj/item/cardpack/series_one = 20,
/obj/item/dyespray = 3,
/obj/item/hourglass = 2,
diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm
index 3b962490347a3..3d8a1f6cf60e2 100644
--- a/code/modules/vending/wardrobes.dm
+++ b/code/modules/vending/wardrobes.dm
@@ -331,7 +331,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE)
/obj/item/storage/backpack/satchel/explorer = 1,
/obj/item/storage/backpack/messenger/explorer = 1,
/obj/item/storage/bag/books = 1,
- /obj/item/radio/headset/headset_srv = 2,
+ /obj/item/radio/headset/headset_srvent = 2,
)
refill_canister = /obj/item/vending_refill/wardrobe/curator_wardrobe
payment_department = ACCOUNT_SRV
diff --git a/code/modules/wiremod/components/abstract/module.dm b/code/modules/wiremod/components/abstract/module.dm
index 4dd144b4c80e3..0622577016acc 100644
--- a/code/modules/wiremod/components/abstract/module.dm
+++ b/code/modules/wiremod/components/abstract/module.dm
@@ -237,7 +237,7 @@
#define WITHIN_RANGE(id, table) (id >= 1 && id <= length(table))
-/obj/item/circuit_component/module/ui_act(action, list/params)
+/obj/item/circuit_component/module/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/wiremod/components/action/pathfind.dm b/code/modules/wiremod/components/action/pathfind.dm
index 0de6d346db17f..6852905644775 100644
--- a/code/modules/wiremod/components/action/pathfind.dm
+++ b/code/modules/wiremod/components/action/pathfind.dm
@@ -24,7 +24,7 @@
// Cooldown to limit how frequently we can path to the same location.
var/same_path_cooldown = 5 SECONDS
- var/different_path_cooldown = 30 SECONDS
+ var/different_path_cooldown = 5 SECONDS
var/max_range = 60
diff --git a/code/modules/wiremod/components/admin/proccall.dm b/code/modules/wiremod/components/admin/proccall.dm
index b86e05e6c8a8b..594c0a6e7d1b6 100644
--- a/code/modules/wiremod/components/admin/proccall.dm
+++ b/code/modules/wiremod/components/admin/proccall.dm
@@ -114,7 +114,7 @@
arguments += add_input_port(data["name"], data["datatype"])
return ..()
-/obj/item/circuit_component/proccall/ui_act(action, list/params)
+/obj/item/circuit_component/proccall/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/wiremod/components/atom/health.dm b/code/modules/wiremod/components/atom/health.dm
index ee04030259e60..49798930d9768 100644
--- a/code/modules/wiremod/components/atom/health.dm
+++ b/code/modules/wiremod/components/atom/health.dm
@@ -43,7 +43,8 @@
var/mob/living/organism = input_port.value
var/turf/current_turf = get_location()
- if(!istype(organism) || get_dist(current_turf, organism) > max_range || current_turf.z != organism.z)
+ var/turf/target_location = get_turf(organism)
+ if(!istype(organism) || get_dist(current_turf, target_location) > max_range || current_turf.z != target_location.z)
brute.set_output(null)
burn.set_output(null)
toxin.set_output(null)
diff --git a/code/modules/wiremod/components/atom/health_state.dm b/code/modules/wiremod/components/atom/health_state.dm
index dc83a41fdfd8d..650311159415b 100644
--- a/code/modules/wiremod/components/atom/health_state.dm
+++ b/code/modules/wiremod/components/atom/health_state.dm
@@ -36,7 +36,8 @@
/obj/item/circuit_component/compare/health_state/do_comparisons()
var/mob/living/organism = input_port.value
var/turf/current_turf = get_location()
- if(!istype(organism) || current_turf.z != organism.z || get_dist(current_turf, organism) > max_range)
+ var/turf/target_location = get_turf(organism)
+ if(!istype(organism) || current_turf.z != target_location.z || get_dist(current_turf, target_location) > max_range)
return FALSE
var/current_option = state_option.value
diff --git a/code/modules/wiremod/components/bci/hud/target_intercept.dm b/code/modules/wiremod/components/bci/hud/target_intercept.dm
index bfdaec13122a0..2ee37e8ff4f3d 100644
--- a/code/modules/wiremod/components/bci/hud/target_intercept.dm
+++ b/code/modules/wiremod/components/bci/hud/target_intercept.dm
@@ -39,7 +39,7 @@
return
var/mob/living/owner = bci.owner
- if(!owner || !istype(owner) || !owner.client)
+ if(!owner || !istype(owner) || !owner.client || owner.stat >= SOFT_CRIT)
return
if(TIMER_COOLDOWN_RUNNING(parent.shell, COOLDOWN_CIRCUIT_TARGET_INTERCEPT))
diff --git a/code/modules/wiremod/components/bci/thought_listener.dm b/code/modules/wiremod/components/bci/thought_listener.dm
index ae6889e2da904..aa788b1a4be88 100644
--- a/code/modules/wiremod/components/bci/thought_listener.dm
+++ b/code/modules/wiremod/components/bci/thought_listener.dm
@@ -48,7 +48,7 @@
var/mob/living/owner = bci.owner
- if(!owner || !istype(owner) || !owner.client || (owner.stat >= UNCONSCIOUS))
+ if(!owner || !istype(owner) || !owner.client || (owner.stat >= SOFT_CRIT))
failure.set_output(COMPONENT_SIGNAL)
return
@@ -57,6 +57,8 @@
/obj/item/circuit_component/thought_listener/proc/thought_listen(mob/living/owner)
var/message = tgui_input_text(owner, input_desc.value ? input_desc.value : "", input_name.value ? input_name.value : "Thought Listener", "")
+ if(QDELETED(owner) || owner.stat >= SOFT_CRIT)
+ return
output.set_output(message)
trigger_output.set_output(COMPONENT_SIGNAL)
ready = TRUE
diff --git a/code/modules/wiremod/components/id/access_checker.dm b/code/modules/wiremod/components/id/access_checker.dm
index 038f4078ecb11..1644d12cba508 100644
--- a/code/modules/wiremod/components/id/access_checker.dm
+++ b/code/modules/wiremod/components/id/access_checker.dm
@@ -87,7 +87,7 @@
data["oneAccess"] = check_any.value
return data
-/obj/item/circuit_component/compare/access/ui_act(action, params)
+/obj/item/circuit_component/compare/access/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
diff --git a/code/modules/wiremod/core/component.dm b/code/modules/wiremod/core/component.dm
index ff0e64cd9a4dc..02e88e53c2381 100644
--- a/code/modules/wiremod/core/component.dm
+++ b/code/modules/wiremod/core/component.dm
@@ -14,6 +14,7 @@
inhand_icon_state = "electronic"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
+ custom_materials = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT)
/// The name of the component shown on the UI
var/display_name = "Generic"
diff --git a/code/modules/wiremod/core/component_printer.dm b/code/modules/wiremod/core/component_printer.dm
index 370a6cfea5244..cb51a0e8ab786 100644
--- a/code/modules/wiremod/core/component_printer.dm
+++ b/code/modules/wiremod/core/component_printer.dm
@@ -22,7 +22,7 @@
/obj/machinery/component_printer/Initialize(mapload)
. = ..()
- materials = AddComponent(/datum/component/remote_materials, mapload)
+ materials = AddComponent(/datum/component/remote_materials, mapload, whitelist_typecache = typecacheof(/obj/item/circuit_component))
/obj/machinery/component_printer/post_machine_initialize()
. = ..()
@@ -117,7 +117,7 @@
materials.use_materials(design.materials, efficiency_coeff, 1, "printed", "[design.name]")
return new design.build_path(drop_location())
-/obj/machinery/component_printer/ui_act(action, list/params)
+/obj/machinery/component_printer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
@@ -192,13 +192,22 @@
return data
/obj/machinery/component_printer/attackby(obj/item/weapon, mob/living/user, params)
- if(istype(weapon, /obj/item/integrated_circuit) && !user.combat_mode)
- var/obj/item/integrated_circuit/circuit = weapon
- circuit.linked_component_printer = WEAKREF(src)
- circuit.update_static_data_for_all_viewers()
- balloon_alert(user, "successfully linked to the integrated circuit")
- return
- return ..()
+ if (user.combat_mode)
+ return ..()
+
+ var/obj/item/integrated_circuit/circuit
+ if(istype(weapon, /obj/item/integrated_circuit))
+ circuit = weapon
+ else if (istype(weapon, /obj/item/circuit_component/module))
+ var/obj/item/circuit_component/module/module = weapon
+ circuit = module.internal_circuit
+ if (isnull(circuit))
+ return ..()
+
+ circuit.linked_component_printer = WEAKREF(src)
+ circuit.update_static_data_for_all_viewers()
+ balloon_alert(user, "successfully linked to the integrated circuit")
+
/obj/machinery/component_printer/crowbar_act(mob/living/user, obj/item/tool)
if(..())
@@ -267,7 +276,7 @@
get_asset_datum(/datum/asset/spritesheet/research_designs)
)
-/obj/machinery/debug_component_printer/ui_act(action, list/params)
+/obj/machinery/debug_component_printer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
@@ -355,7 +364,7 @@
update_static_data_for_all_viewers()
-/obj/machinery/module_duplicator/ui_act(action, list/params)
+/obj/machinery/module_duplicator/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if (.)
return
diff --git a/code/modules/wiremod/core/integrated_circuit.dm b/code/modules/wiremod/core/integrated_circuit.dm
index f24c5dac6671e..db1fd8ac588c0 100644
--- a/code/modules/wiremod/core/integrated_circuit.dm
+++ b/code/modules/wiremod/core/integrated_circuit.dm
@@ -502,6 +502,9 @@ GLOBAL_LIST_EMPTY_TYPED(integrated_circuits, /obj/item/integrated_circuit)
remove_component(component)
if(component.loc == src)
usr.put_in_hands(component)
+ var/obj/machinery/component_printer/printer = linked_component_printer?.resolve()
+ if (!isnull(printer))
+ printer.attackby(component, usr)
. = TRUE
if("set_component_coordinates")
var/component_id = text2num(params["component_id"])
diff --git a/code/modules/wiremod/shell/controller.dm b/code/modules/wiremod/shell/controller.dm
index 126cc8894368f..ae0eb01b36763 100644
--- a/code/modules/wiremod/shell/controller.dm
+++ b/code/modules/wiremod/shell/controller.dm
@@ -53,7 +53,7 @@
/obj/item/circuit_component/controller/proc/handle_trigger(atom/source, user, port_name, datum/port/output/port_signal)
source.balloon_alert(user, "clicked [port_name] button")
- playsound(source, SFX_TERMINAL_TYPE, 25, FALSE)
+ playsound(source, SFX_KEYBOARD_CLICKS, 25, FALSE)
entity.set_output(user)
port_signal.set_output(COMPONENT_SIGNAL)
diff --git a/code/world.dm b/code/world.dm
index 7cc35e5529ad8..31437dda2f539 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -6,7 +6,7 @@
*
* Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke
*
- * The byond world object stores some basic byond level config, and has a few hub specific procs for managing hub visiblity
+ * The byond world object stores some basic byond level config, and has a few hub specific procs for managing hub visibility
*/
/world
mob = /mob/dead/new_player
diff --git a/config/config.txt b/config/config.txt
index d7cd6f5a33df9..192f90a001b7a 100644
--- a/config/config.txt
+++ b/config/config.txt
@@ -209,19 +209,19 @@ IPINTEL_REJECT_BAD
## Ban appeals URL - usually for a forum or wherever people should go to contact your admins.
# BANAPPEALS http://justanotherday.example.com
-## System command that invokes youtube-dl, used by Play Internet Sound.
-## You can install youtube-dl with
-## "pip install youtube-dl" if you have pip installed
-## from https://github.com/rg3/youtube-dl/releases
+## System command that invokes yt-dlp, used by Play Internet Sound.
+## You can install yt-dlp with
+## "pip install yt-dlp" if you have pip installed
+## from https://github.com/yt-dlp/yt-dlp/releases
## or your package manager
-## The default value assumes youtube-dl is in your system PATH
-# INVOKE_YOUTUBEDL youtube-dl
+## The default value assumes yt-dlp is in your system PATH
+# INVOKE_YOUTUBEDL yt-dlp
## Comment this out to disable users ability to use the request internet sounds to be played.
REQUEST_INTERNET_SOUND
## Request Internet Sound Allowed URL'S comma separated, urls here are the only sites allowed through Request Internet Sound, Add more to allow more, or remove to disallow.
-## The Defaults here are all supported by youtube-dl
+## The Defaults here are all supported by yt-dlp
## Ensure . and / are escaped with \
REQUEST_INTERNET_ALLOWED youtube\.com\/watch?v=,youtu\.be\/,soundcloud\.com\/,bandcamp\.com\/track\/
diff --git a/config/lavaruinblacklist.txt b/config/lavaruinblacklist.txt
index fe4cbc86e1ef4..aaa507374cb68 100644
--- a/config/lavaruinblacklist.txt
+++ b/config/lavaruinblacklist.txt
@@ -43,4 +43,4 @@
#_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm
#_maps/RandomRuins/LavaRuins/lavaland_surface_wwiioutpost.dmm
#_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm
-
+#_maps/RandomRuins/Lavaruins/lavaland_surface_crashsite.dmm
diff --git a/dependencies.sh b/dependencies.sh
index d6600a5ff58b4..8319e5edd33d2 100644
--- a/dependencies.sh
+++ b/dependencies.sh
@@ -16,7 +16,7 @@ export NODE_VERSION_LTS=20.13.0
export NODE_VERSION_COMPAT=20.2.0
# SpacemanDMM git tag
-export SPACEMAN_DMM_VERSION=suite-1.8
+export SPACEMAN_DMM_VERSION=suite-1.9
# Python version for mapmerge and other tools
export PYTHON_VERSION=3.9.0
@@ -25,10 +25,10 @@ export PYTHON_VERSION=3.9.0
export DREAMLUAU_REPO="tgstation/dreamluau"
#dreamluau git tag
-export DREAMLUAU_VERSION=0.1.0
+export DREAMLUAU_VERSION=0.1.2
#hypnagogic repo
export CUTTER_REPO=spacestation13/hypnagogic
#hypnagogic git tag
-export CUTTER_VERSION=v3.1.0
+export CUTTER_VERSION=v4.0.0
diff --git a/dreamluau.dll b/dreamluau.dll
index 7d49f0742d8f8..cc2d56d2d1e40 100644
Binary files a/dreamluau.dll and b/dreamluau.dll differ
diff --git a/html/changelogs/AutoChangeLog-pr-86117.yml b/html/changelogs/AutoChangeLog-pr-86117.yml
new file mode 100644
index 0000000000000..67d1fa86818eb
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-86117.yml
@@ -0,0 +1,4 @@
+author: "Ghommie"
+delete-after: True
+changes:
+ - bugfix: "beams now take into account the pixel offsets of both origin and target more accurately.."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-86351.yml b/html/changelogs/AutoChangeLog-pr-86351.yml
new file mode 100644
index 0000000000000..09debea0e55a2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-86351.yml
@@ -0,0 +1,4 @@
+author: "lbnesquik"
+delete-after: True
+changes:
+ - rscadd: "Add a capacity upgrade for janitorial cyborg light replacers"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-86494.yml b/html/changelogs/AutoChangeLog-pr-86494.yml
new file mode 100644
index 0000000000000..67bef920b9281
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-86494.yml
@@ -0,0 +1,4 @@
+author: "Rhials"
+delete-after: True
+changes:
+ - bugfix: "Modifies the mapping around the icebox cliffside, guaranteeing a bit more openness."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-86568.yml b/html/changelogs/AutoChangeLog-pr-86568.yml
new file mode 100644
index 0000000000000..e72dc3cc6ffd5
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-86568.yml
@@ -0,0 +1,4 @@
+author: "SmArtKar"
+delete-after: True
+changes:
+ - code_imp: "Fixed multiple minor logic issues with code found by OpenDream's new pragma"
\ No newline at end of file
diff --git a/html/changelogs/archive/2024-08.yml b/html/changelogs/archive/2024-08.yml
index 216751eaba1ee..e40667b93e971 100644
--- a/html/changelogs/archive/2024-08.yml
+++ b/html/changelogs/archive/2024-08.yml
@@ -213,3 +213,618 @@
2024-08-13:
Majkl-J:
- bugfix: Felinids no longer phase through diagonal gaps upon seeing a laser
+2024-08-15:
+ 00-Steven:
+ - bugfix: Fixed pipes/cables/disposals rendering above closed catwalks.
+ - bugfix: Fixed catwalks covering pipes generating illogical pipe caps when screwed.
+ - bugfix: Opened catwalks are no longer assumed to be above-floor for the sake of
+ generating pipe caps.
+ - bugfix: Fixes getting a "You are too far away!" interaction block on inventory
+ items when inside of another object. This includes accessing storage or using
+ your PDA from a closet, or as pAI using your digital messenger while inside
+ of your card.
+ Archemagus:
+ - bugfix: Strange zeros in paid off citations on sec records
+ - bugfix: Now invalidating citations works
+ - bugfix: You can change crimes description
+ - bugfix: Synths have 'armory access' for sec records logic
+ - qol: Paying off citation now automaticaly voiding it
+ - qol: Crime issuer can void the crime without armory access
+ - qol: In case of invalidation crime shows who voided it
+ Astrogem2:
+ - bugfix: Raw durathread bundles and sinew strands no longer make metal clang sounds.
+ Ben10Omintrix:
+ - bugfix: wolf AI will no longer get stuck
+ - bugfix: idle basic mobs will now plan behaviors rather than completely shut down
+ - bugfix: fixes monkey ai hitting u from a distance with unloaded guns
+ Bisar:
+ - qol: The preserved terrarium vault now has tier 4 hydroponics trays, making volume
+ based tray chemistry take less time.
+ - rscadd: The interns remembered to water the plants around the station; their foilage
+ is so thick that it totally hides the identity of anyone holding them!
+ DATA-xPUNGED:
+ - qol: Nanotrasen has fitted the Janitorial Emergency Response Team with equipment
+ better suited for the job.
+ Dmeto:
+ - bugfix: Wawastation Science is connected to distro,Floor Electrical Relay cable
+ fixed
+ - qol: Cargo Gorka suit slot now allows emergency/plasmaman internals.
+ FlufflesTheDog:
+ - bugfix: pre-upgraded soda dispensers are actually pre-upgraded again
+ GPeckman:
+ - bugfix: Hydraulic clamps (the mech tool) can force powered doors open again.
+ - balance: Abductors (the antag, not the species) can no longer be converted by
+ any antagonist.
+ Kocma-san:
+ - code_imp: "\u0441hanges for a fax located on the CC"
+ - qol: 'added centcom stamps to centcom
+
+ /:cl
+
+
+
+ '
+ MTandi:
+ - balance: 'TechWeb: NT Frontier partners now give full discounts for many high
+ tier nodes, corresponding to the partner theme, instead of partial discounts
+ for random nodes'
+ - qol: Atmos techs can download NT frontier and build compressor board in engi imprinter
+ - balance: Roboticists now always have ordnance access for the discount experiments
+ they need
+ - balance: 'TechWeb: BZ shell is now a discount experiment for experimental tools
+ instead of required exp for fusion'
+ - balance: 'TechWeb: Noblium shell is a discount experiment for RCD upgrades instead
+ of exp tools discount'
+ - balance: 'TechWeb: Vat-grown slime scan is a discount experiment instead of required
+ one'
+ - bugfix: 'TechWeb: Cryostasis node properly requires advanced medbay equipment
+ as it should'
+ Melbert:
+ - rscadd: 'Adds a copy of the famous 1995 musical "Space Station 13: The Musical"
+ to contraband of the autodrobe'
+ Paxilmaniac:
+ - rscadd: The new smartgun has replaced the unusable energy cannon in mystery boxes
+ ? Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan, Ben10Omintrix, BigBimmer,
+ Capsandi, CapybaraExtravagante, Draco, Floyd, Iamgoofball, Imaginos16, Infrared,
+ Jacquerel, Justice12354, Kryson, KylerAce, LemonInTheDark, Meyhazah, Mothblocks,
+ MTandi, Ninjanomnom, oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner,
+ SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016, Viro, Waltermeldon,
+ WatlerJe, ZephyrTFA with thanks to the Mojave Sun team!
+ : - rscadd: Resprites or offsets almost all "tall" objects in the game to match
+ a 3/4ths perspective
+ - rscadd: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work
+ Rhials:
+ - bugfix: Centcom ERT hiring standards have been expanded to include plasmamen,
+ again.
+ Runi-c:
+ - bugfix: Wellcheers no longer does nothing half the time
+ ShadowLarkens:
+ - bugfix: Fixed action buttons relative to EAST,SOUTH, or CENTER being improperly
+ moved during view_audit_buttons()
+ SmArtKar:
+ - bugfix: Circuit health analyzer/state components now work on targets inside lockers
+ - image: Resprited all main assemblies
+ - bugfix: Ninjas can cloak again
+ - image: Durand shield got a glowup
+ - bugfix: Durand shield no longer instantly drains its battery
+ - bugfix: Mech UI no longer lies about the amount of power your mech has left
+ - bugfix: Fixed chanterelles runtiming upon being hollowed out with a spoon and
+ not spawning a hat
+ - bugfix: Ash drakes no longer get stuck in flight if their target changes Z levels
+ or is destroyed and doesn't spawn lavaland turfs after the lava arena attack
+ ends
+ - bugfix: Fixed shuttle loan paperwork being unstampable
+ - balance: Multiple gloves/shoes that had armor values but failed to apply them
+ got fixed
+ - bugfix: Soulscythe now deletes the soul mob when destroyed
+ - bugfix: Bubblegum can no longer bloodcrawl to other Z levels
+ - bugfix: Fixed portable chem mixer spamming you if not held while its UI is open
+ - bugfix: Fixed bileworms not having a deaggro range
+ - bugfix: Heretic sacrifice area no longer modifies global ambience lists
+ - bugfix: Fixed fish analyzers not being able to scan fish
+ - bugfix: Fixed DNA samplers not being able to interact with non-scannable objects
+ - bugfix: Fake aurora caelus event no longer permanently paints space green
+ - code_imp: Cult magic item paths are no longer strings
+ - bugfix: Fixed monk staffs not displaying a wielded sprite
+ - bugfix: Fixed nuke toggle, smite and machine upgrade admin verbs using incorrect
+ sorting
+ - admin: Updated nuke toggle, smite and machine upgrade admin verbs to use TGUI
+ - qol: Magicarps no longer fire their projectiles while out of combat mode
+ - bugfix: Chameleon gun counts as harmless and can be fired by pacifists
+ - qol: Integrated circuit modules now can be linked to component printers
+ - bugfix: You can no longer shove people into closets through directional glass
+ - bugfix: Slimes no longer can feed when they're inside of objects or attacking
+ a target that became invalid after they chose their dinner
+ - bugfix: Fixed Creatures not being able to use non-jaunt actions when seen
+ - bugfix: Void storm now updates mob health
+ - qol: Circuit components can now be recycles in circuit printers, and automatically
+ do so upon being removed if a circuit has a linked printer
+ - spellcheck: Recycling a single item no longer outputs a line with a rogue space
+ infront of it
+ Vekter:
+ - balance: Removes the research requirement from cyborg endoskeletons, meaning they
+ can be built at roundstart again.
+ Watermelon914:
+ - bugfix: Fixed activating specific BCI actions whilst unconsious
+ - balance: Space suits no longer provide all of the slowdown when wearing space
+ gear. Helmets now share the burden and you can now move faster when wearing
+ only a space suit. Helmets now provide a bit of slowdown when worn alone as
+ a result.
+ Xackii:
+ - bugfix: Firelocks can be opened with crowbar rigth-click in combat mode.
+ carlarctg:
+ - balance: Supermatter bioscrambler anomalies are now docile.
+ - balance: Reduced caltrop default paralyze timer from 6 to 2
+ flleeppyy:
+ - rscadd: the cyborg shaker in service borgs now have the ability to open the reaction
+ search menu
+ grungussuss:
+ - balance: bushes and other flora have had their HP reduced from 150 to 100. Trees
+ still have 150 HP
+ - balance: flora now has an X4 modifier to damage from burn sources
+ - balance: MODsuits now deploy 2 times faster
+ - balance: The infiltrator MODsuit now deploys 4 times faster
+ - sound: 'added rustle sounds for: toolbox, medkit, box'
+ - sound: 'added open sounds for: toolbox, box'
+ - code_imp: added support for giving container items rustle sounds
+ grungussuss and Beeblie:
+ - sound: internals breathing sound has received more variance and had its volume
+ reduced
+ hack-wrench:
+ - rscadd: add syndicate branded lipstick to uplink (6 TC), after applying lipstick
+ *kiss deals damage equal to energy gun
+ - bugfix: fix wallhit sound for projectile
+ imedial:
+ - bugfix: fixed nested radios with encryption keys giving free comms
+ itseasytosee:
+ - bugfix: illustrious ethereals now properly get the tenacious trait
+ - code_imp: more species features have been moved to their individual body parts.
+ lbnesquik:
+ - qol: Clarified what the Medical Cyborg Omnitool Upgrade does
+ - rscadd: Added a cyborg plunger for janitorial modules
+ loganuk:
+ - bugfix: AI Players can now operate the BRM (Boulder Retrival Matrix)
+ mc-oofert:
+ - bugfix: breaking certain terrain in deathmatch doesnt instantly breach to space
+ r3dj4ck0424:
+ - bugfix: In light of recent allegations of wizardry among the kitchen staff, our
+ cooks will now need bowls when crafting food that comes in bowls. This should
+ also stop said bowls from vanishing once the food is gone.
+ raffclar:
+ - bugfix: Various fixes to TGUI notepad
+ - bugfix: The first tab is now selected with ore redemption machines when opened
+ for the first time
+ tmyqlfpir:
+ - balance: Reduced pathfinding circuit component cooldown from 30 seconds to 5 seconds
+2024-08-16:
+ Absolucy:
+ - bugfix: Empty blood brother teams will now be cleaned up, instead of clogging
+ up the roundend report.
+ Ben10Omintrix:
+ - bugfix: fixes surgery table buckle offsets
+ - bugfix: fixes rcds accounting for player dir only before construction
+ - bugfix: fixes pickup animation not matching player offset
+ Bisar:
+ - bugfix: Potted plants no longer permanently mark you as one of their own.
+ DATA-xPUNGED:
+ - qol: Paraplegics can now opt into appearing on the shift without their legs.
+ Ghommie:
+ - image: Resprited more types of fillets, and moonfish eggs
+ - rscadd: Crabs and lobstrosities (as well as the lobster foam helmet and the fishing
+ hat) now pack a boatload of fish puns.
+ Jacquerel:
+ - bugfix: corrects offset of cobweb fluff object
+ - bugfix: Dimensional anomalies should once again create cool walls, not boring
+ grey ones
+ - bugfix: Mobs shown in ghost alerts shouldn't be offset out of the box
+ - image: Several midround dynamic alert icons should be more demonstrative of what
+ is spawning
+ Melbert:
+ - bugfix: Less floating things on Delta
+ - rscadd: Auto-generated digitigrade clothing sprites for most jumpsuits
+ Metekillot:
+ - bugfix: Raptors properly respect their own factions now.
+ Sadboysuss:
+ - qol: atmos meters can now be attached to layer 1 and 5
+ - sound: generic ship ambience volume has been reduced
+ Shadow-Quill:
+ - bugfix: You can no longer hear radio sounds if you're deaf.
+ SmArtKar:
+ - image: Mirrors have been successfully wallened
+ - bugfix: You can now move horizontally on tall stairs and they no longer have a
+ hole in them when facing south
+ - bugfix: Fixed improvised shield crafting recipe being overriden by moonflowers
+ - image: Floor lights no longer use outdated textures
+ - balance: Deja Vu perk now teleports you to where you were before the last teleport,
+ instead of where you arrived on the station
+ - bugfix: Deja Vu can no longer be used to return to the wizard ship
+ - bugfix: Blade heretic ascension now gives you floating blades once again
+ deathrobotpunch:
+ - rscadd: big pharma now supplies a single pack of experimental medication as an
+ easy to access (albeit expensive) cargo goodie!
+ - balance: price for the cargo crate with 2 pill bottles of experimental medication
+ has been increased to 600 to better reflect the goodie case price.
+ grungussuss:
+ - sound: some sheets that shouldn't be making metal sounds no longer make those
+ sounds
+ - sound: added new sounds for RCD, RPD and Plumbing Constructor.
+ tralezab:
+ - bugfix: bedsheets are laid on beds properly now
+2024-08-17:
+ Ghommie:
+ - rscadd: Added a treasure chest you can rarely fish from the ocean/beach, with
+ loot being a mix of fishing and piratey stuff.
+ - rscadd: You can revive fish with strange reagent now.
+ - rscadd: You can sell items on the blackmarket with the LTSRBT now.
+ - bugfix: Added some checks to prevent the swapper device and bluespace anomalies
+ from theorically being able to send things and people to nullspace.
+ Jacquerel:
+ - bugfix: Beepsky and Mice have more appropriately positioned shadows.
+ Majkl-J:
+ - bugfix: Trying to repair someone's undamaged limb with a welder or wires no longer
+ has you smacking them
+ Shroopy:
+ - bugfix: Added a light switch to the science hallway in Metastation
+ SmArtKar:
+ - rscadd: You can now lean on windows the same way you can lean on walls
+ - bugfix: You no longer stop leaning on walls after clicking on anything
+ - qol: Dumping things into microwave en-masse is done via RMB (drag'n'drop support
+ coming soon!)
+ - bugfix: RPEDs can now upgrade microwaves
+ - bugfix: Spies can finally steal microwaves (Use RMB!)
+ TheVekter:
+ - bugfix: Updated Metastation for Wallening
+ Time-Green:
+ - qol: The Voidwalker wisp void now loops you
+ unit0016:
+ - bugfix: Indestructible reinforced walls now mimic their destructible counterparts
+ as intended.
+ - bugfix: Every bitrunner domain's been patched up for the new perspective shift.
+ zxaber:
+ - image: Airlocks have a better sprite for indicating which directions (if any)
+ you can pass through without ID access.
+2024-08-18:
+ Ben10Omintrix:
+ - bugfix: fixes ai controllers incorrectly idling when changing z level
+ Ghommie:
+ - bugfix: lights placed on walls with the RLD now face the correct direction.
+ - bugfix: Fixes lobby buttons from station traits having no name and being unexaminable.
+ - bugfix: Fixed the shower water visually not coming out behind the showerhead.
+ Justice12354:
+ - bugfix: Fixes the rotation of Centcom's Airlocks
+ KingkumaArt:
+ - image: Resprited mech drills, plasma cutter, pka and cargo clamp.
+ LemonInTheDark:
+ - admin: Subsystem Overview now has the ability to track a rolling average of tick
+ by tick subsystem cpu usage.
+ Melbert:
+ - qol: Icebox now has a trapdoor from Medbay leading into the Morgue (for corpses,
+ of course)
+ - bugfix: Patch exploit allowing nigh-infinite heretic points
+ - qol: Xenos and digi lizards have claw footprints
+ - qol: Some wall mounts will now consistently layer over others (light switches
+ and cameras, notably, should always layer above other mounts like signs and
+ status displays)
+ MrBagHead:
+ - bugfix: Swapped East and West sprites for access buttons to correct previous misalignment.
+ - rscadd: Added South-facing sprite for access buttons.
+ SmArtKar:
+ - bugfix: Mechs' directional armor now actually works
+ - bugfix: Alien beds no longer pretend they can be deconstructed with a wrench
+ - qol: Wallmount balloons are now clickable
+ - admin: Stat change is now logged for living mobs
+ - bugfix: Fixed elephant graveyard active turfs
+ - bugfix: Fixed random lipstick texture, fake syndie lipstick no longer can randomly
+ spawn
+ Timberpoes:
+ - bugfix: Having the Overflow Role set to On will properly ensure you get that role
+ at a High priority as intended by the game code.
+ - bugfix: Job selection is now a little bit more random. Fixes an unintentional
+ bias in random job assignment that could lead to feast-or-famine for roles where
+ everyone is assigned one job and nobody is assigned another job.
+ YesterdaysPromise:
+ - image: adjusted security barriers to be in 3/4 perspective.
+ Zytolg:
+ - bugfix: Updates much of Birdshot for the Wallening
+ mc-oofert:
+ - rscadd: portable gravity unit, bought at cargo
+ necromanceranne:
+ - rscadd: Drunken fist fighting now has bonuses and penalties based on how intoxicated
+ you are. Controlled liquor intake could make you a better brawler. Though you
+ might vomit if you go too hard.
+ - rscadd: Bartenders are now Drunken Brawlers. If they're drunk at all (no matter
+ how drunk), they're stronger at fist fighting.
+ - rscadd: Reintroduces the deterministic stagger combo. The effects of the combo
+ are more varied, and based on attacker unarmed effectiveness and the defender's
+ armor. Read the PR for more details. It's complicated.
+ - qol: Unarmed effects that would utilize stamina values now use a split of half
+ brute, half burn to determine outcomes or for meeting thresholds. This affects;
+ punch accuracy, stagger combo thresholds and grab vulnerability thresholds.
+ thegrb93:
+ - bugfix: Air alarms stuck in warning state despite area completely fine
+2024-08-19:
+ ArcaneMusic:
+ - bugfix: Runtimestation's APC is now connected to the grid again.
+ - rscadd: White crayons (Renamed to Sticks of Chalk) may now be used on dead bodies
+ to draw a body outline onto the ground easily.
+ Bisar:
+ - bugfix: The Nanotrasen Emergency Religious Response Team has blessed the station;
+ heretic summon rituals now actually consume resources, fixing infinite summon
+ loops.
+ Ghommie:
+ - image: Ported and adapted several food sprites from Aurora, Bay and one instance
+ from Paradise -- Bacon, plant meat, slime meat, cutlets, crab meat, crab rangoon,
+ bechamel sauce, cheese curd, waffles, chips, shrimp chips, cheesie honkers,
+ space twinkie, jerky, peanuts bags, chocolate, boritos, syndicake, popcorn,
+ pesto, tomato sauce, pineapple slice, pineapple salsa, bran request cereals
+ and bronx bar have been resprited.
+ - rscdel: Waffles no longer magically conjure a "waffle tray" trash item when eaten.
+ - image: Shrunk the arrow shown when pointing at things to be less invasive.
+ - rscadd: Wearing an ID with the trim of a command/leader position gives you bigger
+ arrows (about the size of arrows before this PR) which may also be of different
+ colors.
+ - rscadd: Added a skillchip that does the same, but also makes the color of the
+ arrow totally customizable.
+ - bugfix: ERT engies and medics now come with the engineering and entrails-reader
+ skillchips respectively, like their station counterparts.
+ - bugfix: Fixed not facing atoms that you're pointing at.
+ - rscadd: Added a bluespace fish case to the advanced fishing node.
+ - balance: Fish cases will keep a fish from getting hungrier or ready to reproduce,
+ while also healing it up to 65% health.
+ - balance: Examining a fish with zero fishing skill whatsoever won't give a reading
+ on its size and weight. Conversely, examining one with the skill leveled two
+ times will give general information on if it's starving, sick, hungry, or dead.
+ - bugfix: paintings now drop canvas and frame when knocked off the wall.
+ Jacquerel:
+ - bugfix: Whatever the roaches were getting into which made them hover above the
+ ground seems to have worn off.
+ - bugfix: Carp, bat, parrot, and dragon corpses no longer float in the air.
+ Rhials:
+ - code_imp: Radios/encryption keys now use a single variable for "special" frequencies.
+ Please report if you experience any strangeness with accessing/being unable
+ to access the Centcom, Syndicate, or Cyborg radio.
+ SmArtKar:
+ - bugfix: Random spraypaint setting now properly paints large decals
+ - image: Added emissives to departamental signs
+ - image: Gas tanks got updated worn sprites
+ - bugfix: Examine balloons for wall-mounted buttons no longer inflate themselves
+ infinitely
+ - bugfix: Fixed active turfs on crashsite ruin
+ - bugfix: Captain's spare safe no longer turns invisible when opened
+ - bugfix: Fixed soapbox component sometimes runtiming roundstart
+ - bugfix: Fixed circuit drone pixel/shadow offsets
+ TwistedSilicon:
+ - bugfix: Clarkes will no longer become unable to dump ores upon picking a boulder
+ up. Mine away.
+ mc-oofert:
+ - balance: wheelchairs no longer double your movement cooldown if you moved diagonally
+ norsvenska:
+ - qol: The CentCom officer's beret has had its slowdown removed to be in line with
+ the winter coat.
+ r3dj4ck0424:
+ - rscadd: A new vendor of cytology equipment, the CytoPro, is now available in your
+ local science department!
+ san7890:
+ - bugfix: The area of the CentCom Z-Level dedicated to the Lobby Screen should look
+ far better now, with a solid black title screen should the lobby image not load
+ in/get deleted.
+ - qol: Reporting issues on the Github should now be a far more simpler experience.
+ Hitting the "Report Issue" button in the top-right of your BYOND Client Screen
+ will still autofill in the fields as expected.
+2024-08-20:
+ JohnFulpWillard:
+ - rscadd: Added Taunting, a faster and cooldowned version of the Spin emote.
+ - balance: Wizards blocking projectiles with Transparence and the bitrunner matrix
+ skillchip now have a visible effect of deflecting the projectile.
+ - balance: The bitrunner skillchip now uses taunt instead of flip.
+ - balance: The style meter now uses taunting instead of flips and spins.
+ - bugfix: Statues don't count as eyes to creatures.
+ - bugfix: Human AIs and Admin ghosts no longer get kicked off of machines that aren't
+ on cameranets.
+ SmArtKar:
+ - image: Utility belts got new tool overlay sprites
+ - spellcheck: CE's toolbelt is no longer capitalized or considered an improper noun
+ - balance: PACMANs now have significantly increased power output and take longer
+ to consume a single sheet
+ - balance: Inducers can now be recharged with plasma
+ - balance: Inducers ordered from cargo now start with upgraded megacells instead
+ of upgraded batteries
+ - balance: Vomiting from disgust now removes 50 of it from you.
+ Vekter:
+ - bugfix: Fixed further Wallening issues on Metastation, including Cargo's shuttle
+ door buttons and Xenobiology's access buttons.
+ - rscdel: Removed department directional signs from Metastation as they are currently
+ broken. They will return once they've been fixed.
+ Zytolg:
+ - bugfix: Continues to update Birdshot into a postwallening playable state
+ carlarctg:
+ - rscadd: Added three new DM maps - Ragnarok, Lattice Battles, Species Showdown.
+ mc-oofert:
+ - bugfix: spawning on a table or other elevated object does not offset you forever
+2024-08-21:
+ Ghommie:
+ - rscadd: Added twelve new fish types to the game. Some are cool, other are not,
+ some come with their own special traits and some are straight-up weapons.
+ - rscadd: Added more fishing spots to the game. Sand, ice, rivers, the cursed spring...
+ - balance: A few fish like salmon, swordfish and pufferfish (poisonous btw) now
+ give better quality fillets when butchered, which can improve the quality of
+ food that uses them even further.
+ - balance: Excessive fish weight will make the fish slowier to carry, while excessive
+ size may make it require two hands.
+ - balance: Adjusted size, weight and cooldowns of several fish, for the better.
+ Iamgoofball:
+ - balance: Air alarms are now usable by Station Engineers as well as Atmospherics
+ Technicians.
+ Rhials:
+ - bugfix: Adjusts some areas by the Icebox Cliffside Bench to generate a bit less
+ weirdly.
+ - sound: '"radio message received" audio now has a brief cooldown.'
+ - bugfix: Beepsky will now salute commissioned bots, instead of himself, when encountering
+ one.
+ SmArtKar:
+ - bugfix: Ragnarok deathmatch arena now has noteleport area
+ - bugfix: Replaced a locked cabinet that you cannot open in ninja den with an unlocked
+ one
+ - qol: Haunted 8ball now gives you a TGUI input with your question for ghosts instead
+ of telling them the last thing it heard.
+ - image: 8ball has received a resprite
+ - bugfix: Fixed examine balloons not being click transparent even while inactive
+ - image: Updated cryostasis beaker's sprite
+ grungussuss:
+ - sound: computers now make clicky clacky sounds
+2024-08-22:
+ Absolucy:
+ - qol: Clicking floor tiles now also closes curator/morgue doors, like with normal
+ airlocks.
+ - qol: Unarmed attacks with carp jaws now uses a bite effect rather than a punch
+ effect.
+ Ben10Omintrix:
+ - bugfix: fences will no longer appear pitch black and they will layer properly
+ Bisar:
+ - rscadd: Nanotrasen Intelligence has received reports of botanical experimentation
+ in a Syndicate base on lavaland. What fiendish flora are taking root in their
+ secret lair?
+ Ghommie:
+ - rscadd: Fishing toolboxes (and occasionally maintenance) now come with a paper
+ slip containing fishing-related tips.
+ - rscadd: Buckshot is back on the menu, on the blackmarket.
+ - balance: the integrity of firearms now counts toward projectile damage. A gun
+ that's on the very verge of breaking down will deal half as much damage.
+ Jacquerel:
+ - balance: Pacifist carp can now be spawned from the friendly gold core reaction,
+ and no longer appear from the hostile one.
+ - bugfix: The teeth of toothless carp will not occasionally reappear
+ - bugfix: Crabs will now run from attackers larger than them and attack things smaller
+ than them, as intended.
+ Redrover1760:
+ - balance: Changed max refined vortex cores from 1 to 3. Changed the Event Horizon
+ Anti-Existential Beam Rifle recipe to require 2 vortex cores.
+ Rhials:
+ - qol: Delivery/Bot pathing nodes have been added to the middle room of Runtime
+ station.
+ - sound: Windows blown out by a Voidwalker blade now have a cool sound that plays
+ as they reform.
+ - admin: You can now choose the humanoid species spawned by an ERT summon in the
+ summon menu.
+ SmArtKar:
+ - bugfix: Fixes kudzu being able to spawn on openspace turfs resulting in it getting
+ stuck
+ - bugfix: Radioactive nebula no longer runtimes on runtime station
+ - bugfix: Fixed delam counter going over objects
+ by Xackii, sprites by ArcaneMusic:
+ - rscadd: Added big manipulators.
+ lizelive:
+ - balance: reticence requires progression
+ r3dj4ck0424:
+ - balance: The CytoPro has had prices raised to slightly more reasonable levels.
+2024-08-23:
+ MMMiracles:
+ - bugfix: More various Tramstation-adjacent wallening fixes.
+ Majkl-J:
+ - bugfix: custom pies and cakes are craftable again
+ SmArtKar:
+ - image: Updated goliath cloak sprites
+ necromanceranne:
+ - rscadd: Punching mitts! Punch wildlife to death and scream the whole time. ADVENTURE!
+ - balance: Megafauna can be affected by martial arts.
+2024-08-24:
+ DaCoolBoss:
+ - bugfix: Aquarium decorations now contain plastic.
+ - spellcheck: Added item descriptions for aquarium decorations.
+ EnterTheJake:
+ - balance: Rusted Ritual now requries 10 sheets of Iron instead of Titanium.
+ Ghommie:
+ - rscadd: Added Athletic Fishing Gloves and Fishing Glove Module to the advanced
+ fishing tech node. Both can be used to fish without having to hold a fishing
+ rod. The athletic fishing gloves will also train your athletics skill.
+ LT3:
+ - spellcheck: Sneak a peek of Hilbert's Hotel, not a sneak peak
+ SmArtKar:
+ - bugfix: Marine helmets no longer change their sprite to security helmets when
+ their flashlight is toggled
+ - spellcheck: Hierophant no longer lies about obliterating someone
+ TheBoondock:
+ - qol: goliath arm can defuse gibonite by bumping or direct click
+2024-08-25:
+ DrDiasyl aka DrTuxedo:
+ - rscadd: Curator has received a new BROADCAST CAMERA which can broadcast the surroundings
+ LIVE on Entertainment Screens/ Alongside with some other Journalism related
+ gear in his Heroic Beacon
+ - sound: Entertainment screens now play muffled speech when hearing a message on
+ Entertainment frequency
+ Ghommie:
+ - rscadd: You can place papers, photos and cash bills (no holochips) inside bottles
+ and then toss them into the ocean (or fishing portal gen with relative settings)
+ with right-click, for others to fish them up on future rounds.
+ - bugfix: You can no longer pickup closets and crates wrapped in a package with
+ a fishing rod.
+ - bugfix: Fixed a few harddel issues with mob spawns that caused charred corpses
+ fished from lavaland to create an invisible blockade.
+ - bugfix: Fixed being able to fish up mobs that have fallen in totally different
+ z-levels with a rescue hook (i.e. from bitrunning domains to lavaland).
+ SmArtKar:
+ - bugfix: Removed all ways of teleportation from deathmatch and replaced all consoles
+ on a certain map with non-functional variants. Loadouts have been adjusted to
+ account for this.
+ - rscdel: Species Warfare no longer has atmospherics-related equipment on it.
+ YesterdaysPromise:
+ - rscadd: Added crates of the following varieties; Interdyne, Interdyne freezer,
+ Tiger Co-Op, S.E.L.F. MI13, A.R.C., Cybersun (4 colour variants), Waffle Corp,
+ Donk, Gorlex, Gorlex weapons, DeForest, Nakamure Engineeing, Robust Industries
+2024-08-26:
+ GPeckman:
+ - bugfix: The instagib, ragecage, mech madness, secu-ring, shooting range, and sniper
+ elite deathmatch maps are available again.
+ Ghommie:
+ - bugfix: Fixes the chainsaw evolution for goldfishes.
+ Majkl-J:
+ - rscadd: Achievement for eating 500 cigarettes
+ - balance: Cigarettes are now edible
+ - code_imp: Adds a variable to hide the food examine on the edible element
+ - bugfix: SSPolling no longer fills in the candidate list with empty entries to
+ guarantee it returns a list size of amount_to_pick
+ SmArtKar:
+ - spellcheck: Fixed a typo on snowdin shuttle transi(s)t consoles
+ grungussuss:
+ - sound: lead pipe has sound
+ vinylspiders:
+ - bugfix: wet hides and hairless hides no longer make metal clanging noises when
+ picked up/dropped
+2024-08-27:
+ Ben10Omintrix:
+ - bugfix: fixes blob spore and slime AI endlessly attacking the dead
+ Sakamoto4ka:
+ - rscadd: Added salt electrolysis reaction
+ SmArtKar:
+ - bugfix: Bioscrambler anomalies no longer affect inorganic species
+2024-08-28:
+ Melbert:
+ - bugfix: Juicing and grinding should break less
+ Vekter:
+ - bugfix: Fixed an issue causing Quartermaster office access to show in the wrong
+ area on Plexagon Access Management.
+ - bugfix: Fixed an inconsistency in the naming for QM Office access.
+ grungussuss:
+ - bugfix: after 4 years, computer sound loop now works properly
+2024-08-29:
+ FeudeyTF:
+ - rscadd: Added board for detective's evidences
+ Rhials:
+ - rscadd: Smokey remains have appeared in maintenance. Make sure to walk when near
+ them!
+ SmArtKar:
+ - bugfix: Stagger animation is no longer horrilbly jittery
+ Xackii:
+ - qol: revolver in roundstart holsters is on the last slot and not on first
+2024-08-30:
+ SmArtKar:
+ - bugfix: Projectiles no longer always play turf hit sound
+ - balance: Plexagon Crew Manifest is now a default PDA app for everyone, and is
+ free.
+ - balance: Plexagon Crew Manifest no longer provides Detomatix resistance, but security
+ records and status display control now do.
diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml
new file mode 100644
index 0000000000000..34998e0e1c1ab
--- /dev/null
+++ b/html/changelogs/archive/2024-09.yml
@@ -0,0 +1,240 @@
+2024-09-04:
+ 00-Steven:
+ - balance: Fax machines with hacked input servos can now send chap slices and cookies.
+ Please accept them.
+ - bugfix: Buckling yourself to a bed or stasis bed will now make you actually use
+ the headrest/pillow and face up.
+ - qol: Multi-z disposal segments can actually be made with an RPD.
+ - image: Upwards multi-z disposal segments no longer have wonky sprites.
+ - bugfix: Big manipulator hands now move smoothly with the base when it's moved.
+ Absolucy:
+ - bugfix: You will now be ejected from any jaunt (i.e bloodcrawl or shadow walk)
+ if you lose consciousness somehow during the jaunt.
+ Artemchik542:
+ - bugfix: typo in CRUSH_CRIT_PARAPLEGIC
+ AyIong:
+ - qol: Stat Panel settings moved to personal tab
+ - bugfix: Stat Panel tabs no longer create horizontal scrollbar by default, but
+ you can return it into the settings
+ - bugfix: Hovering over a truncated statpanel button, doesn't blocks the button
+ below it anymore
+ FeudeyTF:
+ - bugfix: fixed detective board placing
+ Hardly:
+ - sound: Added sounds for conveyor belt switches
+ JohnFulpWillard:
+ - bugfix: Ice cream vats can be refilled with beakers again.
+ LT3:
+ - bugfix: You can now put Skub back in the Skub box, as intended
+ - bugfix: Ice Box lower floor maints is properly protected during radstorms
+ - bugfix: Fixed malfunctioning tram crossing signals sometimes staying green
+ Melbert:
+ - bugfix: Some spy items should spawn less broken
+ Redrover1760:
+ - bugfix: Fixed light overloads not draining significant amounts of energy.
+ - bugfix: Power sinks now drain APCs at a significant rate instead of glacially
+ slow.
+ - balance: Power sinks are adjusted to not explode within 30 seconds of the average
+ power output a station produces.
+ SmArtKar:
+ - image: Added new sprites for hellfire lasers
+ - bugfix: Cardborg costume no longer gets its appearance deleted when you drop a
+ second hat/suit you are holding in your hand
+ Watermelon914:
+ - bugfix: Fixed a bug that breaks signal handlers on an object if one of the signal
+ handlers doesn't return a number value.
+ Xackii:
+ - bugfix: fixed that screwdriwing radio headset in combat mode don't do anything.
+ alien3301:
+ - balance: When silicons use their radio they will not whisper out loud anymore
+ grungussuss:
+ - sound: being sacrificed by a heretic is now spookier
+ grungussuss and kayozz:
+ - sound: gravity generator has a new sound
+ vinylspiders:
+ - bugfix: due to a clerical error, all ballistic guns were shipping with built-in
+ silencers. this has been resolved-they will now make noise once again when fired.
+ - bugfix: fixes a crafting exploit that allowed you to get more resources back from
+ disassembling than you put into the recipe
+ - bugfix: fixed 'Enable Radio Noise' pref only being respected for deaf people
+2024-09-05:
+ Archimus12:
+ - bugfix: Makes the Cytology Vendor sell science bio suits instead of medical bio
+ suits.
+ - bugfix: Makes the Cytology Vendor sell science lab coats instead of normal lab
+ coats.
+ Astrogem2:
+ - spellcheck: fixed a few typos with energy shield descriptions.
+ Ben10Omintrix:
+ - bugfix: aquarium ui now displays props and fishes correctly
+ - refactor: able_to_run and incapacitated have been refactored to be event based
+ - bugfix: wooden fences will no longer appear pitch black in lower levels of icebox
+ - qol: gives aquariums a new easier to use UI
+ Bisar:
+ - code_imp: The (currently unused) TGUI checkbox components returns a BYOND friendly
+ list of the indexes of any choices now.
+ EnterTheJake:
+ - rscadd: A Syndicate Rebar Quiver has been added to the uplink
+ - qol: Left clicking with a rebar crossbow will now draw/undraw the string.
+ - balance: Rebar quivers are now a neck slot item.
+ - balance: ' Hydrogen bolts damage has been upped to 55 brute and can now pierce
+ through walls, they no longer have infinite piercing and can no longer embed
+ however.'
+ - code_imp: removed the TRAIT_ALWAYS_HIT_ZONE, replaced with 2 new variables.
+ - bugfix: fixes rebar crossbows having a higher capacity than intended if a bolt
+ had already been chambered.
+ FeudeyTF:
+ - bugfix: fixed an UI problems of evidence board
+ Ghommie:
+ - bugfix: Rum can be synthetized again.
+ JohnFulpWillard:
+ - qol: Smartfridges now lets you set how many pills you want to vend, rather than
+ popping out a second separate tgui window.
+ LT3:
+ - rscadd: Added Chief Engineer SEAL OF APPROVAL sticker
+ - code_imp: Stickers now come in sticker packs, not boxes
+ - code_imp: Stickers can now add examine text to whatever they're stuck on
+ Rhials:
+ - spellcheck: Anomaly suicides now use proper grammar.
+ - bugfix: Anomaly suicides work again.
+ Time-Green:
+ - qol: Unsettle (Voidwalker) doesn't go on cooldown if line of sight is broken
+ grungussuss:
+ - sound: fish now have new sounds
+ oranges:
+ - rscadd: ghosts can now jump, bhop your way to life
+ r3dj4ck0424:
+ - rscadd: The vendor of cytology equipment, the CytoPro, is once again available
+ in your local science department!
+2024-09-06:
+ Absolucy:
+ - refactor: Refactored some functions related to line-of-sight and reach to improve
+ performance.
+ Ghommie:
+ - bugfix: Syndie sleepers now drop the appropriate syndicate sleeper boards.
+ - bugfix: fixed a few minor nits with aquarium fish visuals.
+ - qol: You can kill germs by actually cooking the food (i.e. frying and grilling)
+ now, or by setting it on fire.
+ Hardly:
+ - sound: Plumbing Constructor and Rapid-Tiling-Device now has RCD's pick up and
+ UI sounds
+ - bugfix: Fixes ghosts being able to interact with the RCD, RPLD and RPDs
+ Jewelry-x:
+ - spellcheck: fixed a wrong extension in the RUNNING_A_SERVER.md
+ KazooBard:
+ - qol: All cans (soda cans etc) fit on utility belts now. Drink on the job!
+ LT3:
+ - image: 'The ''shit is fucked'' default turf no longer flashes
+
+ /:cl'
+ Majkl-J:
+ - bugfix: Embed updating now actually updates embeds
+ Melbert:
+ - refactor: Refactored heretic influences a tiny bit, now ghosts can see them! Report
+ any oddities.
+ OverwatchVoice:
+ - spellcheck: Changed description of Rebar crossbow.
+ - bugfix: Rebar crossbow description will no longer lie about it's missfire potential.
+ Rhials:
+ - bugfix: Runtime station has delivery beacons and navbeacons again.
+ Singul0:
+ - sound: adds sounds for energy shieldbashing
+ - code_imp: Shieldbashing feature is now consistent across all shield types
+ SmArtKar:
+ - bugfix: Changelings can no longer spawn undetectable spider eggs inside of vents
+ - bugfix: Acromegaly no longer makes you bonk your head on airlocks while you're
+ inside of objects
+ TwistedSilicon:
+ - bugfix: The Codex Cicatrix ritual now consumes the item in the case where a hide
+ was used instead of a corpse. No more free books.
+ Y0SH1M4S73R:
+ - admin: Dreamluau provides a more informative error message when trying to pass
+ references to qdeleted datums back to BYOND.
+ grungussuss:
+ - sound: some more items will vary in pitch when picking them up and placing them
+ down
+ jlsnow301:
+ - rscadd: 'Added two new bitrunning maps: Grasslands Hunt and Meta Central.'
+ - rscadd: Deer are now more complex animals, granting them enhanced ability to run
+ amok and chew your favorite plants.
+ - balance: Reduced the cost of most BR vendor items.
+ - bugfix: Fixes an issue where modular virtual domains spawned less mobs than intended.
+ - bugfix: These modular spawns are now valid mutation targets to become an antagonist.
+ r3dj4ck0424:
+ - spellcheck: made the grammar on the brimdemon horn crusher trophy nicer
+ vinylspiders:
+ - bugfix: fixed a bug that could sometimes cause jump boots users to retain the
+ floating trait indefinitely when using the ability
+2024-09-07:
+ Ben10Omintrix:
+ - bugfix: fixes basic mobs not losing their aggroed appearance after death
+ Ghommie:
+ - rscadd: Added fishing lures to the game. They don't get used up like baits and
+ let you catch specific kinds of fish, though they need to be spun every few
+ seconds. The whole set can be ordered from cargo for 450 credits.
+ - balance: The magnet hook now removes dud chances.
+ - rscadd: 'Added five new fish types: perch, two types of pike, monkfish, plaice
+ and squid. Squids have a fairly special ink production trait, which lets you
+ use them (unless dead) to ink people face at close range, and can be butchered
+ for an ink sac, which can either be processed into canned squid ink, or thrown
+ at someone.'
+ - bugfix: Refactored throwing a little. Some items (specifically components/elements)
+ won't be triggered when caught. no more plates shattering despite being caught
+ for example.
+ - rscadd: Goldfish, lavaloops, needlefish and armorfish can now be used as baits.
+ MrStonedOne:
+ - bugfix: Fixed the taskbar/menu bar icon showing the virgin orange byond icon instead
+ of the chad blue ss13 icon.
+ Rhials:
+ - rscadd: Code-Violet Medical Support ERT teams have been rolled out for deployment
+ to Space Station 13 and related Nanotrasen Installations.
+ Singul0:
+ - bugfix: Fixes makarov-stechkin mix up on forgotten ship virtual domain.
+ Xackii:
+ - qol: You don't need two hands to stream with broadcast camera.
+2024-09-08:
+ EnterTheJake:
+ - balance: Syndicate quiver is now small sized instead of Bulky.
+ FeudeyTF:
+ - bugfix: fixed removing last case
+ SmArtKar:
+ - bugfix: Mouthhole module can no longer be installed on MODsuits that don't cover
+ the mouth
+ - image: Civilian MODsuit got a resprite
+ grungussuss:
+ - sound: fish sounds are louder
+2024-09-09:
+ Ben10Omintrix:
+ - bugfix: basic mobs will now act hostile again
+ Ghommie:
+ - spellcheck: fixed a few wording and markdown issues on the instructions paper
+ for fishing lures.
+ Jackraxxus:
+ - bugfix: You can deploy MODsuit parts individually again.
+ Kylerace:
+ - bugfix: some bot paths will show up to users with diagnostic huds again
+ Melbert:
+ - bugfix: '[Icebox] Fixed one set of stairs'
+ Rhials:
+ - balance: Hallucinatory anomalies now have a wider range, and will spawn hallucinatory
+ decoys of itself to mislead you.
+ Sealed101:
+ - bugfix: fixed borg exoskeletons not dropping when a borg is manually deconstructed
+ - bugfix: borg upgrade modules are now dropped when a borg is deconstructed
+ SmArtKar:
+ - bugfix: Fixed prosthetic quirk dropping organs underneath you when spawning
+ - bugfix: EMPing turrets temporarily disables them once again
+ Thunder12345:
+ - bugfix: Freed up a trapped bookshelf in Birdshot's library
+ TwistedSilicon:
+ - bugfix: Mech equipment is no longer broken in the UI for specific conditions.
+ grungussuss:
+ - sound: changed sounds for stun baton, stun prod, contractor baton and telescopic
+ baton
+ - code_imp: made it easier to modify turning on and turning off for batons
+ - sound: gloves have equip, drop and pickup sounds.
+ vinylspiders:
+ - bugfix: certain text input fields in the character setup menu will now update
+ properly when swapping character slots
+ - bugfix: fixed a race condition that was causing carpotoxin to cause liver damage
+ to felinids despite being immune
diff --git a/html/statbrowser.css b/html/statbrowser.css
index cd1d63bf7c060..d8c0f92b626f4 100644
--- a/html/statbrowser.css
+++ b/html/statbrowser.css
@@ -16,7 +16,7 @@ a:hover {
}
h3 {
- margin: 0 -0.5em 0.25em;
+ margin: 0 -0.5em 0.5em;
padding: 1em 0.66em 0.5em;
border-bottom: 0.1667em solid;
}
@@ -41,6 +41,27 @@ img {
background-color: #ffffff;
}
+.menu-wrap {
+ flex-wrap: wrap-reverse;
+}
+
+#menu.tabs-classic {
+ padding: 0.15em;
+}
+
+#menu.tabs-classic .button {
+ min-width: 2em;
+ margin: 0.1em;
+ padding: 0.25em 0.4em;
+ border: 0;
+ border-radius: 0.25em;
+}
+
+#menu.tabs-classic .button.active {
+ background-color: #0668b8;
+ color: white;
+}
+
.button {
display: inline-table;
cursor: pointer;
@@ -62,6 +83,7 @@ img {
}
.button.active {
+ cursor: default;
background-color: #dfdfdf;
color: black;
border-bottom-color: #000000;
@@ -80,7 +102,7 @@ img {
}
.grid-container {
- margin: 0;
+ margin: -0.25em;
}
.grid-item {
@@ -89,13 +111,14 @@ img {
user-select: none;
-ms-user-select: none; /* Remove after Byond 516 */
width: 100%;
- box-sizing: border-box;
+ max-height: 1.85em;
text-decoration: none;
background-color: transparent;
color: black;
}
-.grid-item:hover {
+.grid-item:hover,
+.grid-item:active {
color: #003399;
z-index: 1;
}
@@ -104,21 +127,20 @@ img {
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
- box-sizing: border-box;
white-space: nowrap;
+ pointer-events: none;
width: 100%;
padding: 0.33em 0.5em;
border-radius: 0.25em;
}
-.grid-item-text:hover {
- position: absolute;
- top: -1.33em;
+.grid-item:hover .grid-item-text {
+ overflow: visible;
white-space: normal;
background-color: #ececec;
}
-.grid-item-text:active {
+.grid-item:active .grid-item-text {
background-color: #dfdfdf;
}
@@ -173,7 +195,8 @@ body.dark {
}
.dark a:hover,
-.dark .grid-item:hover {
+.dark .grid-item:hover,
+.dark .grid-item:active {
color: #80bfff;
}
@@ -181,6 +204,10 @@ body.dark {
background-color: #131313;
}
+.dark #menu.tabs-classic .button.active {
+ background-color: #20b142;
+}
+
.dark .button {
color: rgba(255, 255, 255, 0.5);
}
@@ -203,10 +230,10 @@ body.dark {
color: #b2c4dd;
}
-.dark .grid-item-text:hover {
+.dark .grid-item:hover .grid-item-text {
background-color: #252525;
}
-.dark .grid-item-text:active {
+.dark .grid-item:active .grid-item-text {
background-color: #313131;
}
diff --git a/html/statbrowser.js b/html/statbrowser.js
index f6c188c6edd61..3fe115943a702 100644
--- a/html/statbrowser.js
+++ b/html/statbrowser.js
@@ -716,6 +716,19 @@ function set_font_size(size) {
document.body.style.setProperty('font-size', size);
}
+function set_tabs_style(style) {
+ if (style == "default") {
+ menu.classList.add('menu-wrap');
+ menu.classList.remove('tabs-classic');
+ } else if (style == "classic") {
+ menu.classList.add('menu-wrap');
+ menu.classList.add('tabs-classic');
+ } else if (style == "scrollable") {
+ menu.classList.remove('menu-wrap');
+ menu.classList.remove('tabs-classic');
+ }
+}
+
function set_style_sheet(sheet) {
if (document.getElementById("goonStyle")) {
var currentSheet = document.getElementById("goonStyle");
diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi
index ae668b0495a56..85d450e03bdd6 100644
Binary files a/icons/effects/beam.dmi and b/icons/effects/beam.dmi differ
diff --git a/icons/effects/random_spawners.dmi b/icons/effects/random_spawners.dmi
index 4e5608330030b..d6e06fb140d04 100644
Binary files a/icons/effects/random_spawners.dmi and b/icons/effects/random_spawners.dmi differ
diff --git a/icons/hud/fishing_hud.dmi b/icons/hud/fishing_hud.dmi
index f18ed7c6cfca9..f9d2d2ff9c457 100644
Binary files a/icons/hud/fishing_hud.dmi and b/icons/hud/fishing_hud.dmi differ
diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi
index dda7d6cc635af..10d0b741f0b7c 100644
Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ
diff --git a/icons/hud/screen_gen.dmi b/icons/hud/screen_gen.dmi
index 9792124d1b68c..86383abbef1e2 100644
Binary files a/icons/hud/screen_gen.dmi and b/icons/hud/screen_gen.dmi differ
diff --git a/icons/mob/actions/actions_items.dmi b/icons/mob/actions/actions_items.dmi
index 7aaeb9b36d281..3887804e55ddc 100644
Binary files a/icons/mob/actions/actions_items.dmi and b/icons/mob/actions/actions_items.dmi differ
diff --git a/icons/mob/clothing/accessories.dmi b/icons/mob/clothing/accessories.dmi
index 57670005b9240..0e09772a79f50 100644
Binary files a/icons/mob/clothing/accessories.dmi and b/icons/mob/clothing/accessories.dmi differ
diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi
index a96beb1cfa936..5bcaa41f5ed58 100644
Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ
diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi
index 724a29de21b0f..4a6cc7ac5c9dd 100644
Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ
diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi
index 0507a0301944e..7410e2db20b37 100644
Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ
diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi
index b62b6a0a8ee58..78a07c08e6ede 100644
Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ
diff --git a/icons/mob/clothing/head/hats.dmi b/icons/mob/clothing/head/hats.dmi
index 5e76ab78608f2..1ff429b68b101 100644
Binary files a/icons/mob/clothing/head/hats.dmi and b/icons/mob/clothing/head/hats.dmi differ
diff --git a/icons/mob/clothing/head/helmet.dmi b/icons/mob/clothing/head/helmet.dmi
index 579f4c53f0f97..db48dda1fd61c 100644
Binary files a/icons/mob/clothing/head/helmet.dmi and b/icons/mob/clothing/head/helmet.dmi differ
diff --git a/icons/mob/clothing/modsuit/mod_clothing.dmi b/icons/mob/clothing/modsuit/mod_clothing.dmi
index cb2a472c32ed6..aa9b6feca11af 100644
Binary files a/icons/mob/clothing/modsuit/mod_clothing.dmi and b/icons/mob/clothing/modsuit/mod_clothing.dmi differ
diff --git a/icons/mob/clothing/modsuit/mod_modules.dmi b/icons/mob/clothing/modsuit/mod_modules.dmi
index 4f2dc9740d1f7..5c433defa0755 100644
Binary files a/icons/mob/clothing/modsuit/mod_modules.dmi and b/icons/mob/clothing/modsuit/mod_modules.dmi differ
diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi
index 3467f752ac3a5..bd57cb6eee916 100644
Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ
diff --git a/icons/mob/clothing/suits/armor.dmi b/icons/mob/clothing/suits/armor.dmi
index ea80204c2cdcc..426a760e7700c 100644
Binary files a/icons/mob/clothing/suits/armor.dmi and b/icons/mob/clothing/suits/armor.dmi differ
diff --git a/icons/mob/clothing/suits/utility.dmi b/icons/mob/clothing/suits/utility.dmi
index 0ef867a2866b8..c8e85bf9a45c7 100644
Binary files a/icons/mob/clothing/suits/utility.dmi and b/icons/mob/clothing/suits/utility.dmi differ
diff --git a/icons/mob/effects/blocking.dmi b/icons/mob/effects/blocking.dmi
new file mode 100644
index 0000000000000..03872fa0fe36d
Binary files /dev/null and b/icons/mob/effects/blocking.dmi differ
diff --git a/icons/mob/effects/durand_shield.dmi b/icons/mob/effects/durand_shield.dmi
index 0600e352b316e..8f9016ed74be6 100644
Binary files a/icons/mob/effects/durand_shield.dmi and b/icons/mob/effects/durand_shield.dmi differ
diff --git a/icons/mob/effects/creampie.dmi b/icons/mob/effects/face_decal.dmi
similarity index 100%
rename from icons/mob/effects/creampie.dmi
rename to icons/mob/effects/face_decal.dmi
diff --git a/icons/mob/human/human_face.dmi b/icons/mob/human/human_face.dmi
index 886094ec49573..5b3b141c7edb0 100644
Binary files a/icons/mob/human/human_face.dmi and b/icons/mob/human/human_face.dmi differ
diff --git a/icons/mob/human/species/misc/bodypart_overlay_simple.dmi b/icons/mob/human/species/misc/bodypart_overlay_simple.dmi
index 8df76eb63147b..dbaaeec55cd24 100644
Binary files a/icons/mob/human/species/misc/bodypart_overlay_simple.dmi and b/icons/mob/human/species/misc/bodypart_overlay_simple.dmi differ
diff --git a/icons/mob/inhands/clothing/gloves_lefthand.dmi b/icons/mob/inhands/clothing/gloves_lefthand.dmi
index 4d191e42939b7..13b91d3108f46 100644
Binary files a/icons/mob/inhands/clothing/gloves_lefthand.dmi and b/icons/mob/inhands/clothing/gloves_lefthand.dmi differ
diff --git a/icons/mob/inhands/clothing/gloves_righthand.dmi b/icons/mob/inhands/clothing/gloves_righthand.dmi
index f8ce306cc9850..f7325d02e7a63 100644
Binary files a/icons/mob/inhands/clothing/gloves_righthand.dmi and b/icons/mob/inhands/clothing/gloves_righthand.dmi differ
diff --git a/icons/mob/inhands/fish_lefthand.dmi b/icons/mob/inhands/fish_lefthand.dmi
index f5aeef6202713..bd712791b92da 100644
Binary files a/icons/mob/inhands/fish_lefthand.dmi and b/icons/mob/inhands/fish_lefthand.dmi differ
diff --git a/icons/mob/inhands/fish_righthand.dmi b/icons/mob/inhands/fish_righthand.dmi
index d9c23c3d1b19e..09e97a3196913 100644
Binary files a/icons/mob/inhands/fish_righthand.dmi and b/icons/mob/inhands/fish_righthand.dmi differ
diff --git a/icons/mob/inhands/items/devices_lefthand.dmi b/icons/mob/inhands/items/devices_lefthand.dmi
index 48c47f872df3c..334d962e4057d 100644
Binary files a/icons/mob/inhands/items/devices_lefthand.dmi and b/icons/mob/inhands/items/devices_lefthand.dmi differ
diff --git a/icons/mob/inhands/items/devices_righthand.dmi b/icons/mob/inhands/items/devices_righthand.dmi
index f8f19a8709b15..d26bf452aa5ec 100644
Binary files a/icons/mob/inhands/items/devices_righthand.dmi and b/icons/mob/inhands/items/devices_righthand.dmi differ
diff --git a/icons/mob/simple/carp.dmi b/icons/mob/simple/carp.dmi
index 1be59c43ecb6e..e33b9c7ada810 100644
Binary files a/icons/mob/simple/carp.dmi and b/icons/mob/simple/carp.dmi differ
diff --git a/icons/obj/aquarium/fish.dmi b/icons/obj/aquarium/fish.dmi
index 638c8300f304a..e3b41f4cf906d 100644
Binary files a/icons/obj/aquarium/fish.dmi and b/icons/obj/aquarium/fish.dmi differ
diff --git a/icons/obj/aquarium/wide.dmi b/icons/obj/aquarium/wide.dmi
index 7c5f941a1db37..5334fcf1808c8 100644
Binary files a/icons/obj/aquarium/wide.dmi and b/icons/obj/aquarium/wide.dmi differ
diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi
index 0253485cec327..578aebd0c65a1 100644
Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.dmi differ
diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi
index 7a215dcb9b1cc..0692033a5361b 100644
Binary files a/icons/obj/clothing/belt_overlays.dmi and b/icons/obj/clothing/belt_overlays.dmi differ
diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi
index 4739498c16426..b2b3d333bb44f 100644
Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ
diff --git a/icons/obj/clothing/head/hats.dmi b/icons/obj/clothing/head/hats.dmi
index da4a30e996740..2ce0eebb2ad22 100644
Binary files a/icons/obj/clothing/head/hats.dmi and b/icons/obj/clothing/head/hats.dmi differ
diff --git a/icons/obj/clothing/head/helmet.dmi b/icons/obj/clothing/head/helmet.dmi
index cc54b2bf92934..621afe57ddce4 100644
Binary files a/icons/obj/clothing/head/helmet.dmi and b/icons/obj/clothing/head/helmet.dmi differ
diff --git a/icons/obj/clothing/headsets.dmi b/icons/obj/clothing/headsets.dmi
index b977487e2c6ce..57e67e5761a0c 100644
Binary files a/icons/obj/clothing/headsets.dmi and b/icons/obj/clothing/headsets.dmi differ
diff --git a/icons/obj/clothing/modsuit/mod_clothing.dmi b/icons/obj/clothing/modsuit/mod_clothing.dmi
index 6ab49417aa52f..160606c790afa 100644
Binary files a/icons/obj/clothing/modsuit/mod_clothing.dmi and b/icons/obj/clothing/modsuit/mod_clothing.dmi differ
diff --git a/icons/obj/clothing/modsuit/mod_modules.dmi b/icons/obj/clothing/modsuit/mod_modules.dmi
index 36d95aa61fdbb..5cab83c56d5b2 100644
Binary files a/icons/obj/clothing/modsuit/mod_modules.dmi and b/icons/obj/clothing/modsuit/mod_modules.dmi differ
diff --git a/icons/obj/clothing/suits/armor.dmi b/icons/obj/clothing/suits/armor.dmi
index b1763f5453ffe..b2c9a1aa8b430 100644
Binary files a/icons/obj/clothing/suits/armor.dmi and b/icons/obj/clothing/suits/armor.dmi differ
diff --git a/icons/obj/clothing/suits/utility.dmi b/icons/obj/clothing/suits/utility.dmi
index 25fb8fd502a35..f8e3c4ce46897 100644
Binary files a/icons/obj/clothing/suits/utility.dmi and b/icons/obj/clothing/suits/utility.dmi differ
diff --git a/icons/obj/cosmetic.dmi b/icons/obj/cosmetic.dmi
index b04bde541ad6c..e9f831fbc9690 100644
Binary files a/icons/obj/cosmetic.dmi and b/icons/obj/cosmetic.dmi differ
diff --git a/icons/obj/devices/mecha_equipment.dmi b/icons/obj/devices/mecha_equipment.dmi
index 90f0ce8c736cf..ebfa5438ae911 100644
Binary files a/icons/obj/devices/mecha_equipment.dmi and b/icons/obj/devices/mecha_equipment.dmi differ
diff --git a/icons/obj/devices/new_assemblies.dmi b/icons/obj/devices/new_assemblies.dmi
index 1de208a7736ce..7bf96e5ba92e3 100644
Binary files a/icons/obj/devices/new_assemblies.dmi and b/icons/obj/devices/new_assemblies.dmi differ
diff --git a/icons/obj/devices/voice.dmi b/icons/obj/devices/voice.dmi
index 1e875d9323038..4188d7867eebd 100644
Binary files a/icons/obj/devices/voice.dmi and b/icons/obj/devices/voice.dmi differ
diff --git a/icons/obj/drinks/bottles.dmi b/icons/obj/drinks/bottles.dmi
index 205a67c84e20d..2bdacf0426506 100644
Binary files a/icons/obj/drinks/bottles.dmi and b/icons/obj/drinks/bottles.dmi differ
diff --git a/icons/obj/fishing.dmi b/icons/obj/fishing.dmi
index 92d1cf9a12231..2344d2b8ed9e6 100644
Binary files a/icons/obj/fishing.dmi and b/icons/obj/fishing.dmi differ
diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi
index 9ad8d3235e1f0..7b6afcc37ffbe 100644
Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ
diff --git a/icons/obj/food/lizard.dmi b/icons/obj/food/lizard.dmi
index 15bed265e2f41..29b35cd8a96c5 100644
Binary files a/icons/obj/food/lizard.dmi and b/icons/obj/food/lizard.dmi differ
diff --git a/icons/obj/food/martian.dmi b/icons/obj/food/martian.dmi
index 79efcd1813d58..829cf421cfb51 100644
Binary files a/icons/obj/food/martian.dmi and b/icons/obj/food/martian.dmi differ
diff --git a/icons/obj/food/meat.dmi b/icons/obj/food/meat.dmi
index bf0b1df4f4cd2..ca3007749e7e6 100644
Binary files a/icons/obj/food/meat.dmi and b/icons/obj/food/meat.dmi differ
diff --git a/icons/obj/food/mexican.dmi b/icons/obj/food/mexican.dmi
index ba02c15a0b577..772d6b2e3fc74 100644
Binary files a/icons/obj/food/mexican.dmi and b/icons/obj/food/mexican.dmi differ
diff --git a/icons/obj/food/piecake.dmi b/icons/obj/food/piecake.dmi
index e6c0a71022d50..1097c9d2acd3b 100644
Binary files a/icons/obj/food/piecake.dmi and b/icons/obj/food/piecake.dmi differ
diff --git a/icons/obj/food/spaghetti.dmi b/icons/obj/food/spaghetti.dmi
index 1c97a45e7b788..0d5e473e9b4b6 100644
Binary files a/icons/obj/food/spaghetti.dmi and b/icons/obj/food/spaghetti.dmi differ
diff --git a/icons/obj/machines/big_manipulator.dmi b/icons/obj/machines/big_manipulator.dmi
new file mode 100644
index 0000000000000..b6e878e189842
Binary files /dev/null and b/icons/obj/machines/big_manipulator.dmi differ
diff --git a/icons/obj/machines/big_manipulator_parts/big_manipulator_core.dmi b/icons/obj/machines/big_manipulator_parts/big_manipulator_core.dmi
new file mode 100644
index 0000000000000..614b4d51cbbf9
Binary files /dev/null and b/icons/obj/machines/big_manipulator_parts/big_manipulator_core.dmi differ
diff --git a/icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi b/icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi
new file mode 100644
index 0000000000000..e165441e8052e
Binary files /dev/null and b/icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi differ
diff --git a/icons/obj/machines/gravity_generator.dmi b/icons/obj/machines/gravity_generator.dmi
index 69395034dc840..18ad0ca0c20af 100644
Binary files a/icons/obj/machines/gravity_generator.dmi and b/icons/obj/machines/gravity_generator.dmi differ
diff --git a/icons/obj/machines/ltsrbt.dmi b/icons/obj/machines/ltsrbt.dmi
new file mode 100644
index 0000000000000..cdb7e06cbb3df
Binary files /dev/null and b/icons/obj/machines/ltsrbt.dmi differ
diff --git a/icons/obj/machines/telecomms.dmi b/icons/obj/machines/telecomms.dmi
index f1380268c29cf..1d27e0b10b2d6 100644
Binary files a/icons/obj/machines/telecomms.dmi and b/icons/obj/machines/telecomms.dmi differ
diff --git a/icons/obj/machines/vending.dmi b/icons/obj/machines/vending.dmi
index b9a9ba9568291..319771e4e7fb5 100644
Binary files a/icons/obj/machines/vending.dmi and b/icons/obj/machines/vending.dmi differ
diff --git a/icons/obj/medical/chemical.dmi b/icons/obj/medical/chemical.dmi
index 84dfd01d2d455..e362c5126e193 100644
Binary files a/icons/obj/medical/chemical.dmi and b/icons/obj/medical/chemical.dmi differ
diff --git a/icons/obj/pipes_n_cables/disposal.dmi b/icons/obj/pipes_n_cables/disposal.dmi
index 41207b7a7cd6f..a65413d3d007c 100644
Binary files a/icons/obj/pipes_n_cables/disposal.dmi and b/icons/obj/pipes_n_cables/disposal.dmi differ
diff --git a/icons/obj/service/broadcast.dmi b/icons/obj/service/broadcast.dmi
new file mode 100644
index 0000000000000..e82023791f3d6
Binary files /dev/null and b/icons/obj/service/broadcast.dmi differ
diff --git a/icons/obj/service/janitor.dmi b/icons/obj/service/janitor.dmi
index 0e30180832345..9f28c6bbe046e 100644
Binary files a/icons/obj/service/janitor.dmi and b/icons/obj/service/janitor.dmi differ
diff --git a/icons/obj/service/library.dmi b/icons/obj/service/library.dmi
index f9273a55e5530..5c393ae3c8622 100644
Binary files a/icons/obj/service/library.dmi and b/icons/obj/service/library.dmi differ
diff --git a/icons/obj/smooth_structures/grav_field.dmi b/icons/obj/smooth_structures/grav_field.dmi
new file mode 100644
index 0000000000000..4f51707938e9c
Binary files /dev/null and b/icons/obj/smooth_structures/grav_field.dmi differ
diff --git a/icons/obj/smooth_structures/grav_field.png b/icons/obj/smooth_structures/grav_field.png
new file mode 100644
index 0000000000000..5177e57724049
Binary files /dev/null and b/icons/obj/smooth_structures/grav_field.png differ
diff --git a/icons/obj/smooth_structures/grav_field.png.toml b/icons/obj/smooth_structures/grav_field.png.toml
new file mode 100644
index 0000000000000..49f4000c213db
--- /dev/null
+++ b/icons/obj/smooth_structures/grav_field.png.toml
@@ -0,0 +1,5 @@
+output_name = "grav_field"
+template = "bitmask/diagonal_32x32.toml"
+
+[animation]
+delays = [1, 1, 1]
diff --git a/icons/obj/smooth_structures/grav_field_emissive.dmi b/icons/obj/smooth_structures/grav_field_emissive.dmi
new file mode 100644
index 0000000000000..a2db63f082a5b
Binary files /dev/null and b/icons/obj/smooth_structures/grav_field_emissive.dmi differ
diff --git a/icons/obj/smooth_structures/grav_field_emissive.png b/icons/obj/smooth_structures/grav_field_emissive.png
new file mode 100644
index 0000000000000..d3746ac5b63ac
Binary files /dev/null and b/icons/obj/smooth_structures/grav_field_emissive.png differ
diff --git a/icons/obj/smooth_structures/grav_field_emissive.png.toml b/icons/obj/smooth_structures/grav_field_emissive.png.toml
new file mode 100644
index 0000000000000..ba6a7f73aaf7b
--- /dev/null
+++ b/icons/obj/smooth_structures/grav_field_emissive.png.toml
@@ -0,0 +1,5 @@
+output_name = "grav_field_emissive"
+template = "bitmask/diagonal_32x32.toml"
+
+[animation]
+delays = [1, 1, 1]
diff --git a/icons/obj/storage/box.dmi b/icons/obj/storage/box.dmi
index 01588bd050f74..747fb5462c7df 100644
Binary files a/icons/obj/storage/box.dmi and b/icons/obj/storage/box.dmi differ
diff --git a/icons/obj/storage/case.dmi b/icons/obj/storage/case.dmi
index a29fd3a6f37c0..94b7251f93f46 100644
Binary files a/icons/obj/storage/case.dmi and b/icons/obj/storage/case.dmi differ
diff --git a/icons/obj/storage/crates.dmi b/icons/obj/storage/crates.dmi
index 46c61f8299767..a5a26c285a7d6 100644
Binary files a/icons/obj/storage/crates.dmi and b/icons/obj/storage/crates.dmi differ
diff --git a/icons/obj/toys/stickers.dmi b/icons/obj/toys/stickers.dmi
index 37780f5fd6cfe..80c0e138e38f9 100644
Binary files a/icons/obj/toys/stickers.dmi and b/icons/obj/toys/stickers.dmi differ
diff --git a/icons/obj/toys/toy.dmi b/icons/obj/toys/toy.dmi
index 8d77fd0c757a1..bc6f2f75424c3 100644
Binary files a/icons/obj/toys/toy.dmi and b/icons/obj/toys/toy.dmi differ
diff --git a/icons/obj/vending_restock.dmi b/icons/obj/vending_restock.dmi
index 836aebca7ae2d..ca8e40349c406 100644
Binary files a/icons/obj/vending_restock.dmi and b/icons/obj/vending_restock.dmi differ
diff --git a/icons/obj/weapons/bows/quivers.dmi b/icons/obj/weapons/bows/quivers.dmi
index 615f96ee6af6d..86e6ffd2b925a 100644
Binary files a/icons/obj/weapons/bows/quivers.dmi and b/icons/obj/weapons/bows/quivers.dmi differ
diff --git a/icons/obj/weapons/cannons.dmi b/icons/obj/weapons/cannons.dmi
index f0e37c5310ac6..b9735ba0aef9f 100644
Binary files a/icons/obj/weapons/cannons.dmi and b/icons/obj/weapons/cannons.dmi differ
diff --git a/icons/obj/weapons/grenade.dmi b/icons/obj/weapons/grenade.dmi
index b3fb018bafa07..c65f6d0e9fb80 100644
Binary files a/icons/obj/weapons/grenade.dmi and b/icons/obj/weapons/grenade.dmi differ
diff --git a/icons/obj/weapons/guns/ammo.dmi b/icons/obj/weapons/guns/ammo.dmi
index 4cd031af7ee8b..971bdaf4d2041 100644
Binary files a/icons/obj/weapons/guns/ammo.dmi and b/icons/obj/weapons/guns/ammo.dmi differ
diff --git a/icons/obj/weapons/guns/ballistic.dmi b/icons/obj/weapons/guns/ballistic.dmi
index 824d8b7c0a073..4ebb17baec329 100644
Binary files a/icons/obj/weapons/guns/ballistic.dmi and b/icons/obj/weapons/guns/ballistic.dmi differ
diff --git a/icons/obj/weapons/guns/projectiles.dmi b/icons/obj/weapons/guns/projectiles.dmi
index a6cf89e9b910f..cbf79a92b538f 100644
Binary files a/icons/obj/weapons/guns/projectiles.dmi and b/icons/obj/weapons/guns/projectiles.dmi differ
diff --git a/icons/turf/debug.dmi b/icons/turf/debug.dmi
index debc965d0ecd8..848187dd9f03f 100644
Binary files a/icons/turf/debug.dmi and b/icons/turf/debug.dmi differ
diff --git a/icons/turf/overlays.dmi b/icons/turf/overlays.dmi
index c9decbc5a3af3..2b78f1ae40b41 100644
Binary files a/icons/turf/overlays.dmi and b/icons/turf/overlays.dmi differ
diff --git a/icons/ui/achievements/achievements.dmi b/icons/ui/achievements/achievements.dmi
index 143d0dc0a03ae..740759467e0cc 100644
Binary files a/icons/ui/achievements/achievements.dmi and b/icons/ui/achievements/achievements.dmi differ
diff --git a/interface/interface.dm b/interface/interface.dm
index a32bb758a204f..c90abd9583c45 100644
--- a/interface/interface.dm
+++ b/interface/interface.dm
@@ -58,45 +58,45 @@
set desc = "Report an issue"
set hidden = TRUE
var/githuburl = CONFIG_GET(string/githuburl)
- if(githuburl)
- var/message = "This will open the Github issue reporter in your browser. Are you sure?"
- if(GLOB.revdata.testmerge.len)
- message += "
The following experimental changes are active and are probably the cause of any new or sudden issues you may experience. If possible, please try to find a specific thread for your issue instead of posting to the general issue tracker:
"
- message += GLOB.revdata.GetTestMergeInfo(FALSE)
- // We still use tgalert here because some people were concerned that if someone wanted to report that tgui wasn't working
- // then the report issue button being tgui-based would be problematic.
- if(tgalert(src, message, "Report Issue","Yes","No")!="Yes")
- return
+ if(!githuburl)
+ to_chat(src, span_danger("The Github URL is not set in the server configuration."))
+ return
- // Keep a static version of the template to avoid reading file
- var/static/issue_template = file2text(".github/ISSUE_TEMPLATE/bug_report.md")
+ var/testmerge_data = GLOB.revdata.testmerge
+ var/has_testmerge_data = (length(testmerge_data) != 0)
- // Get a local copy of the template for modification
- var/local_template = issue_template
+ var/message = "This will open the Github issue reporter in your browser. Are you sure?"
+ if(has_testmerge_data)
+ message += "
The following experimental changes are active and are probably the cause of any new or sudden issues you may experience. If possible, please try to find a specific thread for your issue instead of posting to the general issue tracker:
"
+ message += GLOB.revdata.GetTestMergeInfo(FALSE)
- // Remove comment header
- var/content_start = findtext(local_template, "<")
- if(content_start)
- local_template = copytext(local_template, content_start)
+ // We still use tgalert here because some people were concerned that if someone wanted to report that tgui wasn't working
+ // then the report issue button being tgui-based would be problematic.
+ if(tgalert(src, message, "Report Issue","Yes","No") != "Yes")
+ return
- // Insert round
- if(GLOB.round_id)
- local_template = replacetext(local_template, "## Round ID:\n", "## Round ID:\n[GLOB.round_id]")
+ var/base_link = githuburl + "/issues/new?template=bug_report_form.yml"
+ var/list/concatable = list(base_link)
- // Insert testmerges
- if(GLOB.revdata.testmerge.len)
- var/list/all_tms = list()
- for(var/entry in GLOB.revdata.testmerge)
- var/datum/tgs_revision_information/test_merge/tm = entry
- all_tms += "- \[[tm.title]\]([githuburl]/pull/[tm.number])"
- var/all_tms_joined = all_tms.Join("\n") // for some reason this can't go in the []
- local_template = replacetext(local_template, "## Testmerges:\n", "## Testmerges:\n[all_tms_joined]")
+ var/client_version = "[byond_version].[byond_build]"
+ concatable += ("&reporting-version=" + client_version)
+
+ // the way it works is that we use the ID's that are baked into the template YML and replace them with values that we can collect in game.
+ if(GLOB.round_id)
+ concatable += ("&round-id=" + GLOB.round_id)
+
+ // Insert testmerges
+ if(has_testmerge_data)
+ var/list/all_tms = list()
+ for(var/entry in testmerge_data)
+ var/datum/tgs_revision_information/test_merge/tm = entry
+ all_tms += "- \[[tm.title]\]([githuburl]/pull/[tm.number])"
+ var/all_tms_joined = jointext(all_tms, "%0A") // %0A is a newline for URL encoding because i don't trust \n to not break
+
+ concatable += ("&test-merges=" + all_tms_joined)
+
+ DIRECT_OUTPUT(src, link(jointext(concatable, "")))
- var/url_params = "Reporting client version: [byond_version].[byond_build]\n\n[local_template]"
- DIRECT_OUTPUT(src, link("[githuburl]/issues/new?body=[url_encode(url_params)]"))
- else
- to_chat(src, span_danger("The Github URL is not set in the server configuration."))
- return
/client/verb/changelog()
set name = "Changelog"
diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm
index 1ee06ed48550d..e0e1181f93c98 100644
--- a/interface/stylesheet.dm
+++ b/interface/stylesheet.dm
@@ -51,6 +51,7 @@ em {font-style: normal; font-weight: bold;}
.syndradio {color: #6d3f40;}
.centcomradio {color: #686868;}
.aiprivradio {color: #ff00ff;}
+.enteradio {color: #00ff99;}
.redteamradio {color: #ff0000;}
.blueteamradio {color: #0000ff;}
.greenteamradio {color: #00ff00;}
diff --git a/lua/SS13_base.lua b/lua/SS13_base.lua
index 2b0645172ea1c..23f464bf328ab 100644
--- a/lua/SS13_base.lua
+++ b/lua/SS13_base.lua
@@ -56,7 +56,10 @@ end
local function signal_handler(data, ...)
local output = 0
for func, _ in data.functions do
- output = bit32.bor(output, func(...))
+ local result = func(...)
+ if type(result) == "number" then
+ output = bit32.bor(output, math.floor(result))
+ end
end
return output
end
diff --git a/modular_doppler/cryosleep/code/ai.dm b/modular_doppler/cryosleep/code/ai.dm
index 5397311dc2f89..272998265b802 100644
--- a/modular_doppler/cryosleep/code/ai.dm
+++ b/modular_doppler/cryosleep/code/ai.dm
@@ -3,7 +3,7 @@
set desc = "Puts the current AI personality into cryogenic stasis, freeing the space for another."
set category = "AI Commands"
- if(incapacitated())
+ if(incapacitated)
return
switch(alert("Would you like to enter cryo? This will ghost you. Remember to AHELP before cryoing out of important roles, even with no admins online.",,"Yes.","No."))
if("Yes.")
diff --git a/sound/ambience/antag/heretic/attribution.txt b/sound/ambience/antag/heretic/attribution.txt
new file mode 100644
index 0000000000000..8744b2497f5bd
--- /dev/null
+++ b/sound/ambience/antag/heretic/attribution.txt
@@ -0,0 +1 @@
+heretic_sacrifice.ogg - made by sadboysusss, License: CC-by-SA
\ No newline at end of file
diff --git a/sound/ambience/antag/heretic/heretic_sacrifice.ogg b/sound/ambience/antag/heretic/heretic_sacrifice.ogg
new file mode 100644
index 0000000000000..5a8efb6508356
Binary files /dev/null and b/sound/ambience/antag/heretic/heretic_sacrifice.ogg differ
diff --git a/sound/ambience/shipambience.ogg b/sound/ambience/shipambience.ogg
index 51e090b02c81c..68a9182fa6672 100644
Binary files a/sound/ambience/shipambience.ogg and b/sound/ambience/shipambience.ogg differ
diff --git a/sound/attributions.txt b/sound/attributions.txt
index 123fde0794c19..3a2468205d027 100644
--- a/sound/attributions.txt
+++ b/sound/attributions.txt
@@ -209,3 +209,7 @@ beaker_pickup.ogg was made by lowering pitch:
Bottle Tap.wav by alex_alexalex -- https://freesound.org/s/395492/ -- License: Attribution NonCommercial 3.0
beaker_place.ogg was made by cutting and lowering pitch:
place glass object.wav by milpower -- https://freesound.org/s/353105/ -- License: Creative Commons 0
+
+glass_reverse.ogg is adapted from a combination of:
+https://freesound.org/people/C_Rogers/sounds/203368/ -- glass-shattering-hit_01.ogg by C_Rogers on freesound.org (CC0)
+https://freesound.org/people/Czarcazas/sounds/330800/ -- Audio reversal/fading of Shattering Glass (Small) by Czarcazas -- https://freesound.org/s/330800/ -- License: Attribution 3.0
\ No newline at end of file
diff --git a/sound/creatures/fish/attritbution.txt b/sound/creatures/fish/attritbution.txt
new file mode 100644
index 0000000000000..2b3d80f408e20
--- /dev/null
+++ b/sound/creatures/fish/attritbution.txt
@@ -0,0 +1,7 @@
+{
+fish_drop1.ogg - fish slap ground or snow writhing wet.wav by kyles -- https://freesound.org/s/450830/ -- License: Creative Commons 0
+fish_pickup1.ogg - fish slap ground or snow writhing wet.wav by kyles -- https://freesound.org/s/450830/ -- License: Creative Commons 0
+fish_pickup2.ogg - fish slap ground or snow writhing wet.wav by kyles -- https://freesound.org/s/450830/ -- License: Creative Commons 0
+fish_slap1.ogg - Slap - Cartoony by AdminMP -- https://freesound.org/s/383201/ -- License: Creative Commons 0
+fish_slap2.ogg - Major punch by janbezouska -- https://freesound.org/s/399183/ -- License: Creative Commons 0
+} - edited by sadboysuss
diff --git a/sound/creatures/fish/fish_drop1.ogg b/sound/creatures/fish/fish_drop1.ogg
new file mode 100644
index 0000000000000..3c658a197688c
Binary files /dev/null and b/sound/creatures/fish/fish_drop1.ogg differ
diff --git a/sound/creatures/fish/fish_pickup1.ogg b/sound/creatures/fish/fish_pickup1.ogg
new file mode 100644
index 0000000000000..7f1fe68080b10
Binary files /dev/null and b/sound/creatures/fish/fish_pickup1.ogg differ
diff --git a/sound/creatures/fish/fish_pickup2.ogg b/sound/creatures/fish/fish_pickup2.ogg
new file mode 100644
index 0000000000000..70d240bad667e
Binary files /dev/null and b/sound/creatures/fish/fish_pickup2.ogg differ
diff --git a/sound/creatures/fish/fish_slap1.ogg b/sound/creatures/fish/fish_slap1.ogg
new file mode 100644
index 0000000000000..984e1cf10883a
Binary files /dev/null and b/sound/creatures/fish/fish_slap1.ogg differ
diff --git a/sound/creatures/fish/fish_slap2.ogg b/sound/creatures/fish/fish_slap2.ogg
new file mode 100644
index 0000000000000..581cf17e6885f
Binary files /dev/null and b/sound/creatures/fish/fish_slap2.ogg differ
diff --git a/sound/effects/energyshieldbash.ogg b/sound/effects/energyshieldbash.ogg
new file mode 100644
index 0000000000000..c8d5bee557222
Binary files /dev/null and b/sound/effects/energyshieldbash.ogg differ
diff --git a/sound/effects/glass_reverse.ogg b/sound/effects/glass_reverse.ogg
new file mode 100644
index 0000000000000..af1492d9b86b4
Binary files /dev/null and b/sound/effects/glass_reverse.ogg differ
diff --git a/sound/effects/muffspeech/muffspeech1.ogg b/sound/effects/muffspeech/muffspeech1.ogg
new file mode 100644
index 0000000000000..b8b2f5f40b19d
Binary files /dev/null and b/sound/effects/muffspeech/muffspeech1.ogg differ
diff --git a/sound/effects/muffspeech/muffspeech2.ogg b/sound/effects/muffspeech/muffspeech2.ogg
new file mode 100644
index 0000000000000..9ffecadf61e06
Binary files /dev/null and b/sound/effects/muffspeech/muffspeech2.ogg differ
diff --git a/sound/effects/muffspeech/muffspeech3.ogg b/sound/effects/muffspeech/muffspeech3.ogg
new file mode 100644
index 0000000000000..dff0e567daccc
Binary files /dev/null and b/sound/effects/muffspeech/muffspeech3.ogg differ
diff --git a/sound/effects/muffspeech/muffspeech4.ogg b/sound/effects/muffspeech/muffspeech4.ogg
new file mode 100644
index 0000000000000..4e46c7a707acc
Binary files /dev/null and b/sound/effects/muffspeech/muffspeech4.ogg differ
diff --git a/sound/effects/muffspeech/muffspeech5.ogg b/sound/effects/muffspeech/muffspeech5.ogg
new file mode 100644
index 0000000000000..ff1c9948c5621
Binary files /dev/null and b/sound/effects/muffspeech/muffspeech5.ogg differ
diff --git a/sound/effects/muffspeech/muffspeech6.ogg b/sound/effects/muffspeech/muffspeech6.ogg
new file mode 100644
index 0000000000000..13b70731ac3e0
Binary files /dev/null and b/sound/effects/muffspeech/muffspeech6.ogg differ
diff --git a/sound/effects/muffspeech/muffspeech7.ogg b/sound/effects/muffspeech/muffspeech7.ogg
new file mode 100644
index 0000000000000..ea566e6ef5872
Binary files /dev/null and b/sound/effects/muffspeech/muffspeech7.ogg differ
diff --git a/sound/effects/muffspeech/muffspeech8.ogg b/sound/effects/muffspeech/muffspeech8.ogg
new file mode 100644
index 0000000000000..ad51432d2da54
Binary files /dev/null and b/sound/effects/muffspeech/muffspeech8.ogg differ
diff --git a/sound/effects/muffspeech/muffspeech9.ogg b/sound/effects/muffspeech/muffspeech9.ogg
new file mode 100644
index 0000000000000..5d1be3b745f3e
Binary files /dev/null and b/sound/effects/muffspeech/muffspeech9.ogg differ
diff --git a/sound/items/attributions.txt b/sound/items/attributions.txt
index 9ad1a09d8cb41..a9fa969808060 100644
--- a/sound/items/attributions.txt
+++ b/sound/items/attributions.txt
@@ -31,8 +31,6 @@ handcuffs_drop.ogg - handcuffs.ogg by kimuracarter -- https://freesound.org/s/52
handcuffs_pick_up.ogg - handcuffs.ogg by kimuracarter -- https://freesound.org/s/528749/ -- License: Attribution 3.0
plastic_shield_drop.ogg - made by sadboysuss -- License: CC-by-SA
plastic_shield_pick_up.ogg - made by sadboysuss -- License: CC-by-SA
-stun_baton_drop.ogg - Fn P90 Submachine Gun 5.7Mm. Mechan; Empty Mag Inserted Into And Pulled Out Slow And Various 02 by PNMCarrieRailfan -- https://freesound.org/s/682041/ -- License: Attribution NonCommercial 4.0
-stun_baton_pick_up.ogg - Fn P90 Submachine Gun 5.7Mm. Mechan; Empty Mag Inserted Into And Pulled Out Slow And Various 02 by PNMCarrieRailfan -- https://freesound.org/s/682041/ -- License: Attribution NonCommercial 4.0
pepper_spray_drop.ogg - Spray Paint Shake Slow Five.wav by cbakos -- https://freesound.org/s/200376/ -- License: Creative Commons 0
pepper_spray_pick_up.ogg - Spray Paint Shake Slow Five.wav by cbakos -- https://freesound.org/s/200376/ -- License: Creative Commons 0
grenade_drop.ogg - made by sadboysuss -- License: CC-by-SA
@@ -56,3 +54,21 @@ gas_tank_drop.ogg
gas_tank_pick_up.ogg
} - https://freesound.org/people/Globofonia/sounds/698346/ , License CC0
edited by grungussuss
+
+{
+cardboad_box_open.ogg - made by sadboysuss
+cardboad_box_rustle.ogg - made by sadboysuss
+toolbox_open.ogg - made by sadboysuss
+toolbox_rustle.ogg - made by sadboysuss
+medkit_rustle.ogg - made by sadboysuss
+} - license: CC-by-SA
+
+{
+glove_pick_up.ogg - made by sadboysuss
+glove_drop.ogg - made by sadboysuss
+} - license: CC-by-SA
+glove_equip.ogg - LETHRCreak_Leather Belt Short Creak 01_PF_365 DAYS OF SOUND by itmightgetloud -- https://freesound.org/s/751281/ -- License: Creative Commons 0
+
+lead_pipe_hit.ogg - jixaw-metal-pipe-falling-sound.mp3 by thenotcheeseman -- https://freesound.org/s/679206/ -- License: Creative Commons 0
+lead_pipe_drop.ogg - jixaw-metal-pipe-falling-sound.mp3 by thenotcheeseman -- https://freesound.org/s/679206/ -- License: Creative Commons 0
+lead_pipe_pickup.ogg - Metal pipe hitting the ground.flac by CGEffex -- https://freesound.org/s/93962/ -- License: Attribution 4.0
diff --git a/sound/items/baton/attribution.txt b/sound/items/baton/attribution.txt
new file mode 100644
index 0000000000000..b580347bf6100
--- /dev/null
+++ b/sound/items/baton/attribution.txt
@@ -0,0 +1,12 @@
+stun_baton_inactive_drop.ogg - Fn P90 Submachine Gun 5.7Mm. Mechan; Empty Mag Inserted Into And Pulled Out Slow And Various 02 by PNMCarrieRailfan -- https://freesound.org/s/682041/ -- License: Attribution NonCommercial 4.0
+stun_baton_inactive_pickup.ogg - Fn P90 Submachine Gun 5.7Mm. Mechan; Empty Mag Inserted Into And Pulled Out Slow And Various 02 by PNMCarrieRailfan -- https://freesound.org/s/682041/ -- License: Attribution NonCommercial 4.0
+{
+telescopic_baton_folded_drop.ogg
+telescopic_baton_folded_pickup.ogg
+telescopic_baton_unfolded_drop.ogg
+telescopic_baton_unfolded_pickup.ogg
+} - made by sadboysuss, license: CC-BY-SA
+contractor_baton_unfolded_drop.ogg is spliced with Taser by JavierZumer -- https://freesound.org/s/257236/ -- License: Attribution 4.0
+contractor_baton_unfolded_pickup.ogg is spliced with Taser by JavierZumer -- https://freesound.org/s/257236/ -- License: Attribution 4.0
+stun_baton_active_drop.ogg is stun_baton_inactive_drop.ogg spliced with Taser by JavierZumer -- https://freesound.org/s/257236/ -- License: Attribution 4.0
+stun_baton_active_pickup.ogg is stun_baton_inactive_pickup.ogg spliced with Taser by JavierZumer -- https://freesound.org/s/257236/ -- License: Attribution 4.0
diff --git a/sound/items/baton/contractor_baton_unfolded_drop.ogg b/sound/items/baton/contractor_baton_unfolded_drop.ogg
new file mode 100644
index 0000000000000..acebcd9d053c0
Binary files /dev/null and b/sound/items/baton/contractor_baton_unfolded_drop.ogg differ
diff --git a/sound/items/baton/contractor_baton_unfolded_pickup.ogg b/sound/items/baton/contractor_baton_unfolded_pickup.ogg
new file mode 100644
index 0000000000000..59ebc61163850
Binary files /dev/null and b/sound/items/baton/contractor_baton_unfolded_pickup.ogg differ
diff --git a/sound/items/baton/stun_baton_active_drop.ogg b/sound/items/baton/stun_baton_active_drop.ogg
new file mode 100644
index 0000000000000..a5e7cc8474948
Binary files /dev/null and b/sound/items/baton/stun_baton_active_drop.ogg differ
diff --git a/sound/items/baton/stun_baton_active_pickup.ogg b/sound/items/baton/stun_baton_active_pickup.ogg
new file mode 100644
index 0000000000000..3f4908c094556
Binary files /dev/null and b/sound/items/baton/stun_baton_active_pickup.ogg differ
diff --git a/sound/items/stun_baton_drop.ogg b/sound/items/baton/stun_baton_inactive_drop.ogg
similarity index 100%
rename from sound/items/stun_baton_drop.ogg
rename to sound/items/baton/stun_baton_inactive_drop.ogg
diff --git a/sound/items/stun_baton_pick_up.ogg b/sound/items/baton/stun_baton_inactive_pickup.ogg
similarity index 100%
rename from sound/items/stun_baton_pick_up.ogg
rename to sound/items/baton/stun_baton_inactive_pickup.ogg
diff --git a/sound/items/baton/telescopic_baton_folded_drop.ogg b/sound/items/baton/telescopic_baton_folded_drop.ogg
new file mode 100644
index 0000000000000..e61d11d0540ed
Binary files /dev/null and b/sound/items/baton/telescopic_baton_folded_drop.ogg differ
diff --git a/sound/items/baton/telescopic_baton_folded_pickup.ogg b/sound/items/baton/telescopic_baton_folded_pickup.ogg
new file mode 100644
index 0000000000000..b0f126a76d683
Binary files /dev/null and b/sound/items/baton/telescopic_baton_folded_pickup.ogg differ
diff --git a/sound/items/baton/telescopic_baton_unfolded_drop.ogg b/sound/items/baton/telescopic_baton_unfolded_drop.ogg
new file mode 100644
index 0000000000000..dc6a11a90aef2
Binary files /dev/null and b/sound/items/baton/telescopic_baton_unfolded_drop.ogg differ
diff --git a/sound/items/baton/telescopic_baton_unfolded_pickup.ogg b/sound/items/baton/telescopic_baton_unfolded_pickup.ogg
new file mode 100644
index 0000000000000..2a7eb3d27882b
Binary files /dev/null and b/sound/items/baton/telescopic_baton_unfolded_pickup.ogg differ
diff --git a/sound/items/cardboard_box_open.ogg b/sound/items/cardboard_box_open.ogg
new file mode 100644
index 0000000000000..1ad890d159a59
Binary files /dev/null and b/sound/items/cardboard_box_open.ogg differ
diff --git a/sound/items/cardboard_box_rustle.ogg b/sound/items/cardboard_box_rustle.ogg
new file mode 100644
index 0000000000000..01dcc5567b721
Binary files /dev/null and b/sound/items/cardboard_box_rustle.ogg differ
diff --git a/sound/items/equip/glove_equip.ogg b/sound/items/equip/glove_equip.ogg
new file mode 100644
index 0000000000000..33ab18a5e6e6a
Binary files /dev/null and b/sound/items/equip/glove_equip.ogg differ
diff --git a/sound/items/handling/attribution.txt b/sound/items/handling/attribution.txt
new file mode 100644
index 0000000000000..c1a72a40c3c91
--- /dev/null
+++ b/sound/items/handling/attribution.txt
@@ -0,0 +1,7 @@
+{
+rcd_drop.ogg - made by sadboysuss - license: CC-by-SA
+rcd_pickup.ogg - made by sadboysuss - license: CC-by-SA
+rpd_drop.ogg - made by sadboysuss - license: CC-by-SA
+rpd_pickup.ogg - made by sadboysuss - license: CC-by-SA
+tool_switch.ogg - made by sadboysuss - license: CC-by-SA
+} - edited by sadboysuss
\ No newline at end of file
diff --git a/sound/items/handling/glove_drop.ogg b/sound/items/handling/glove_drop.ogg
new file mode 100644
index 0000000000000..bfd490e94a8ae
Binary files /dev/null and b/sound/items/handling/glove_drop.ogg differ
diff --git a/sound/items/handling/glove_pick_up.ogg b/sound/items/handling/glove_pick_up.ogg
new file mode 100644
index 0000000000000..1fd7de9e6b968
Binary files /dev/null and b/sound/items/handling/glove_pick_up.ogg differ
diff --git a/sound/items/handling/rcd_drop.ogg b/sound/items/handling/rcd_drop.ogg
new file mode 100644
index 0000000000000..276a014ae3123
Binary files /dev/null and b/sound/items/handling/rcd_drop.ogg differ
diff --git a/sound/items/handling/rcd_pickup.ogg b/sound/items/handling/rcd_pickup.ogg
new file mode 100644
index 0000000000000..bc7d103800bfa
Binary files /dev/null and b/sound/items/handling/rcd_pickup.ogg differ
diff --git a/sound/items/handling/rpd_drop.ogg b/sound/items/handling/rpd_drop.ogg
new file mode 100644
index 0000000000000..8591719c918ea
Binary files /dev/null and b/sound/items/handling/rpd_drop.ogg differ
diff --git a/sound/items/handling/rpd_pickup.ogg b/sound/items/handling/rpd_pickup.ogg
new file mode 100644
index 0000000000000..ef6bf685d0073
Binary files /dev/null and b/sound/items/handling/rpd_pickup.ogg differ
diff --git a/sound/items/handling/tool_switch.ogg b/sound/items/handling/tool_switch.ogg
new file mode 100644
index 0000000000000..b0cacda41623c
Binary files /dev/null and b/sound/items/handling/tool_switch.ogg differ
diff --git a/sound/items/lead_pipe_drop.ogg b/sound/items/lead_pipe_drop.ogg
new file mode 100644
index 0000000000000..144d24ca94c7a
Binary files /dev/null and b/sound/items/lead_pipe_drop.ogg differ
diff --git a/sound/items/lead_pipe_hit.ogg b/sound/items/lead_pipe_hit.ogg
new file mode 100644
index 0000000000000..51b4dbf60b146
Binary files /dev/null and b/sound/items/lead_pipe_hit.ogg differ
diff --git a/sound/items/lead_pipe_pickup.ogg b/sound/items/lead_pipe_pickup.ogg
new file mode 100644
index 0000000000000..559138d66a53f
Binary files /dev/null and b/sound/items/lead_pipe_pickup.ogg differ
diff --git a/sound/items/medkit_drop.ogg b/sound/items/medkit_drop.ogg
index 227d4a8beb220..3acf1db1abc50 100644
Binary files a/sound/items/medkit_drop.ogg and b/sound/items/medkit_drop.ogg differ
diff --git a/sound/items/medkit_pick_up.ogg b/sound/items/medkit_pick_up.ogg
index e13c6848e44df..90de3a19616ef 100644
Binary files a/sound/items/medkit_pick_up.ogg and b/sound/items/medkit_pick_up.ogg differ
diff --git a/sound/items/medkit_rustle.ogg b/sound/items/medkit_rustle.ogg
new file mode 100644
index 0000000000000..55ebc82b911d5
Binary files /dev/null and b/sound/items/medkit_rustle.ogg differ
diff --git a/sound/items/toolbox_open.ogg b/sound/items/toolbox_open.ogg
new file mode 100644
index 0000000000000..9dea5428d048a
Binary files /dev/null and b/sound/items/toolbox_open.ogg differ
diff --git a/sound/items/toolbox_rustle.ogg b/sound/items/toolbox_rustle.ogg
new file mode 100644
index 0000000000000..939d003b18f5b
Binary files /dev/null and b/sound/items/toolbox_rustle.ogg differ
diff --git a/sound/machines/computer/attribution.txt b/sound/machines/computer/attribution.txt
new file mode 100644
index 0000000000000..ab10c922afb69
--- /dev/null
+++ b/sound/machines/computer/attribution.txt
@@ -0,0 +1,7 @@
+computer_clicks_1.ogg - made by sadboysuss, license: CC-by-SA
+computer_clicks_2.ogg - made by sadboysuss, license: CC-by-SA
+computer_clicks_3.ogg - made by sadboysuss, license: CC-by-SA
+computer_clicks_4.ogg - made by sadboysuss, license: CC-by-SA
+computer_clicks_5.ogg - made by sadboysuss, license: CC-by-SA
+computer_clicks_6.ogg - made by sadboysuss, license: CC-by-SA
+computer_clicks_7.ogg - made by sadboysuss, license: CC-by-SA
\ No newline at end of file
diff --git a/sound/machines/computer/keyboard_clicks_1.ogg b/sound/machines/computer/keyboard_clicks_1.ogg
new file mode 100644
index 0000000000000..b33c6fd56a338
Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_1.ogg differ
diff --git a/sound/machines/computer/keyboard_clicks_2.ogg b/sound/machines/computer/keyboard_clicks_2.ogg
new file mode 100644
index 0000000000000..64d810753c3cb
Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_2.ogg differ
diff --git a/sound/machines/computer/keyboard_clicks_3.ogg b/sound/machines/computer/keyboard_clicks_3.ogg
new file mode 100644
index 0000000000000..0e1bb3696f103
Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_3.ogg differ
diff --git a/sound/machines/computer/keyboard_clicks_4.ogg b/sound/machines/computer/keyboard_clicks_4.ogg
new file mode 100644
index 0000000000000..b700393a9c38e
Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_4.ogg differ
diff --git a/sound/machines/computer/keyboard_clicks_5.ogg b/sound/machines/computer/keyboard_clicks_5.ogg
new file mode 100644
index 0000000000000..d54b211da0217
Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_5.ogg differ
diff --git a/sound/machines/computer/keyboard_clicks_6.ogg b/sound/machines/computer/keyboard_clicks_6.ogg
new file mode 100644
index 0000000000000..84ff3bb7f8003
Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_6.ogg differ
diff --git a/sound/machines/computer/keyboard_clicks_7.ogg b/sound/machines/computer/keyboard_clicks_7.ogg
new file mode 100644
index 0000000000000..39204e360c9f7
Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_7.ogg differ
diff --git a/sound/machines/gravgen/attribution.txt b/sound/machines/gravgen/attribution.txt
new file mode 100644
index 0000000000000..f4aeab2c4902a
--- /dev/null
+++ b/sound/machines/gravgen/attribution.txt
@@ -0,0 +1,6 @@
+{
+grav_gen_start.ogg
+grav_gen_mid1.ogg
+grav_gen_mid2.ogg - + Explosion 7b by LiamG_SFX -- https://freesound.org/s/322492/ -- License: Attribution NonCommercial 4.0
+grav_gen_end.ogg
+} made by sadboysuss by editing a sound made by kayozz , license: CC-by-SA
\ No newline at end of file
diff --git a/sound/machines/gravgen/grav_gen_end.ogg b/sound/machines/gravgen/grav_gen_end.ogg
new file mode 100644
index 0000000000000..a63305708d030
Binary files /dev/null and b/sound/machines/gravgen/grav_gen_end.ogg differ
diff --git a/sound/machines/gravgen/grav_gen_mid1.ogg b/sound/machines/gravgen/grav_gen_mid1.ogg
new file mode 100644
index 0000000000000..e6e38c11d467b
Binary files /dev/null and b/sound/machines/gravgen/grav_gen_mid1.ogg differ
diff --git a/sound/machines/gravgen/grav_gen_mid2.ogg b/sound/machines/gravgen/grav_gen_mid2.ogg
new file mode 100644
index 0000000000000..cf112de1885b4
Binary files /dev/null and b/sound/machines/gravgen/grav_gen_mid2.ogg differ
diff --git a/sound/machines/gravgen/grav_gen_start.ogg b/sound/machines/gravgen/grav_gen_start.ogg
new file mode 100644
index 0000000000000..4a734e5517020
Binary files /dev/null and b/sound/machines/gravgen/grav_gen_start.ogg differ
diff --git a/sound/machines/gravgen/gravgen_mid1.ogg b/sound/machines/gravgen/gravgen_mid1.ogg
deleted file mode 100644
index de2744194bdc6..0000000000000
Binary files a/sound/machines/gravgen/gravgen_mid1.ogg and /dev/null differ
diff --git a/sound/machines/gravgen/gravgen_mid2.ogg b/sound/machines/gravgen/gravgen_mid2.ogg
deleted file mode 100644
index 7b09d566e91eb..0000000000000
Binary files a/sound/machines/gravgen/gravgen_mid2.ogg and /dev/null differ
diff --git a/sound/machines/gravgen/gravgen_mid3.ogg b/sound/machines/gravgen/gravgen_mid3.ogg
deleted file mode 100644
index 6e133b5fcfe60..0000000000000
Binary files a/sound/machines/gravgen/gravgen_mid3.ogg and /dev/null differ
diff --git a/sound/machines/gravgen/gravgen_mid4.ogg b/sound/machines/gravgen/gravgen_mid4.ogg
deleted file mode 100644
index 4f08f5e6d2273..0000000000000
Binary files a/sound/machines/gravgen/gravgen_mid4.ogg and /dev/null differ
diff --git a/sound/machines/lever_start.ogg b/sound/machines/lever_start.ogg
new file mode 100644
index 0000000000000..4160f39026ac0
Binary files /dev/null and b/sound/machines/lever_start.ogg differ
diff --git a/sound/machines/lever_stop.ogg b/sound/machines/lever_stop.ogg
new file mode 100644
index 0000000000000..22f8875019dd4
Binary files /dev/null and b/sound/machines/lever_stop.ogg differ
diff --git a/sound/machines/license.txt b/sound/machines/license.txt
index 6a54969a19170..0d7de5a5dfa3d 100644
--- a/sound/machines/license.txt
+++ b/sound/machines/license.txt
@@ -7,4 +7,8 @@ coffeemaker_brew.ogg originally made by Adriana Lopez (Acekat13X31), edited to r
This is licensed under CC-BY 4.0, found at https://creativecommons.org/licenses/by/4.0/
shutter.ogg adapted from Joseph Sardin on BigSoundBank
-https://bigsoundbank.com/detail-2475-manual-roller-shutter-closing-out-2.html
\ No newline at end of file
+https://bigsoundbank.com/detail-2475-manual-roller-shutter-closing-out-2.html
+
+lever_start.ogg and lever_stop.ogg are made by A_Kuha on FreeSound
+https://freesound.org/people/A_Kuha/sounds/676412
+This is licensed under CC-0, found at https://creativecommons.org/publicdomain/zero/1.0/
diff --git a/sound/voice/breathing.ogg b/sound/voice/breathing.ogg
deleted file mode 100644
index f940a1b211a6b..0000000000000
Binary files a/sound/voice/breathing.ogg and /dev/null differ
diff --git a/sound/voice/breathing/attribution.txt b/sound/voice/breathing/attribution.txt
new file mode 100644
index 0000000000000..20f8ef5df6d1e
--- /dev/null
+++ b/sound/voice/breathing/attribution.txt
@@ -0,0 +1,10 @@
+{
+internals_breathing1.ogg
+internals_breathing2.ogg
+internals_breathing3.ogg
+internals_breathing4.ogg
+internals_breathing5.ogg
+internals_breathing6.ogg
+internals_breathing7.ogg
+internals_breathing8.ogg
+} - foley by sadboysuss, edited by Beeblie , license: CC-by-SA
\ No newline at end of file
diff --git a/sound/voice/breathing/internals_breathing1.ogg b/sound/voice/breathing/internals_breathing1.ogg
new file mode 100644
index 0000000000000..e4f1d564ad697
Binary files /dev/null and b/sound/voice/breathing/internals_breathing1.ogg differ
diff --git a/sound/voice/breathing/internals_breathing2.ogg b/sound/voice/breathing/internals_breathing2.ogg
new file mode 100644
index 0000000000000..7b09c04cc62b5
Binary files /dev/null and b/sound/voice/breathing/internals_breathing2.ogg differ
diff --git a/sound/voice/breathing/internals_breathing3.ogg b/sound/voice/breathing/internals_breathing3.ogg
new file mode 100644
index 0000000000000..0ea34b9024b67
Binary files /dev/null and b/sound/voice/breathing/internals_breathing3.ogg differ
diff --git a/sound/voice/breathing/internals_breathing4.ogg b/sound/voice/breathing/internals_breathing4.ogg
new file mode 100644
index 0000000000000..30718fab3070e
Binary files /dev/null and b/sound/voice/breathing/internals_breathing4.ogg differ
diff --git a/sound/voice/breathing/internals_breathing5.ogg b/sound/voice/breathing/internals_breathing5.ogg
new file mode 100644
index 0000000000000..c78354481955e
Binary files /dev/null and b/sound/voice/breathing/internals_breathing5.ogg differ
diff --git a/sound/voice/breathing/internals_breathing6.ogg b/sound/voice/breathing/internals_breathing6.ogg
new file mode 100644
index 0000000000000..f415845902d98
Binary files /dev/null and b/sound/voice/breathing/internals_breathing6.ogg differ
diff --git a/sound/voice/breathing/internals_breathing7.ogg b/sound/voice/breathing/internals_breathing7.ogg
new file mode 100644
index 0000000000000..946c34d45f307
Binary files /dev/null and b/sound/voice/breathing/internals_breathing7.ogg differ
diff --git a/sound/voice/breathing/internals_breathing8.ogg b/sound/voice/breathing/internals_breathing8.ogg
new file mode 100644
index 0000000000000..36f4925612542
Binary files /dev/null and b/sound/voice/breathing/internals_breathing8.ogg differ
diff --git a/strings/crustacean_replacement.json b/strings/crustacean_replacement.json
new file mode 100644
index 0000000000000..9c1ebabcbc074
--- /dev/null
+++ b/strings/crustacean_replacement.json
@@ -0,0 +1,160 @@
+{
+
+ "crustacean": {
+ "simp": "shrimp",
+ "problem": "prawnblem",
+ "proba": "prawnba",
+ "prob": "prawn",
+ "pawn": "prawn",
+ "cool": "tenta-cool",
+ "bat": "bait",
+ "fuck": "shuck",
+ "brilliant": "gilliant",
+ "totally": "turtally",
+ "confu" : "conchfu",
+ "kungfu": "conchfu",
+ "kung fu": "conch fu",
+ " mull": " mullet",
+ "believe": "bereef",
+ "believ": "bereef",
+ "rage": "rayge",
+ "kid": "squid",
+ "mark": "shark",
+ "tray": "cray",
+ "cry": "cray",
+ "pray": "cray",
+ "comp": "clam",
+ "calm": "clam",
+ "calam": "clam",
+ "ambulance": "clambulance",
+ "bike": "pike",
+ "suspicious": "fishy",
+ " sus ": " fishy ",
+ "sussy": "sushi",
+ "tune": "tuna",
+ "opportunity": "opportunaty",
+ "got ": "cod ",
+ "god": "cod",
+ "caught": "cod",
+ "grapple": "crapple",
+ "grabb": "crappl",
+ " rue": " roe",
+ "grab": "crapple",
+ "self": "shellf",
+ "cell": "shell",
+ "come": "chum",
+ "plank ": "plankton ",
+ "meant": "manta",
+ "skill": "krill",
+ "chill": "krill",
+ "core": "coral",
+ "hell of it": "halibut",
+ "hell": "eel",
+ "whole": "whale",
+ "muscle": "mussel",
+ "cracking" : "kraken",
+ "crackin": "kraken",
+ "opinion": "octopinion",
+ "utter": "otter",
+ "neme": "nemo",
+ "real": "reel",
+ "orc ": "orca ",
+ "ork ": "orca ",
+ "macaroni": "mackarel",
+ "usurer": "loan shark",
+ "chewy": "spongey",
+ "hamburger": "crabby patty",
+ "burger": "patty",
+ "crust": "krust",
+ "offic": "ofish",
+ "outer space": "trouter space",
+ "deepspace": "trouter space",
+ "deep space": "trouter space",
+ "surgeon": "sturgeon",
+ "purpose": "porpoise",
+ "bastard": "basstard",
+ "ballock": "pollock",
+ "fist": "fish",
+ "place": "plaice",
+ "definitively" : "dolphinitely",
+ "enemy": "anemony",
+ "enemies": "anemones",
+ " mob": " lob",
+ "bitch": "beach",
+ " min ": "minnow",
+ "lemme know": "lemminnow",
+ "let me know": "let minnow",
+ "admin": "adminnow",
+ "better": "betta",
+ " ass ": " wrasse ",
+ "asshole" : "wrassehole",
+ "bond" : "pond",
+ "inc": "ink",
+ "anything": "anyfin",
+ "something": "somefin",
+ "anythin": "anyfin",
+ "somethin": "somefin",
+ "someone": "salmon",
+ "coy": "koi",
+ "earring": "herring",
+ "hearin": "herrin",
+ "celebrat": "shellebrat",
+ "santa": "sandy",
+ "claus": "claws",
+ "boss": "bass",
+ "doofus": "doofish",
+ "could": "cod",
+ "what are": "water",
+ "what're": "water",
+ "whatre": "wa'er",
+ "other": "otter",
+ "lots": "lobst",
+ "fumble": "flounder",
+ "serious": "searious",
+ "show": "shoal",
+ "miracle": "mackerel",
+ "trait": "trout",
+ "syndicate": "sea world",
+ "syndies": "fishermen",
+ "syndie": "fisherman",
+ "syndi": "fisherman",
+ "spy": "marine biologist",
+ "above": "upstream",
+ "below": "downstream",
+ "heretic": "herringtic",
+ "cult": "shoalt",
+ "nar'si": "carp'si",
+ "narsi": "carpsi",
+ "blob": "blobfish",
+ "dumbass": "dum bass",
+ "outdone": "troutdone",
+ "quintessen": "squiddessen",
+ "clos": "claws",
+ "absol": "crabsol",
+ "crap": [
+ "carp",
+ "crab"
+ ],
+ "kill": [
+ "krill",
+ "gill"
+ ],
+ "fanta": [
+ "manta",
+ "finta"
+ ],
+ "billion": [
+ "bill-ion",
+ "krillion"
+ ],
+ "click": [
+ "click",
+ "clack"
+ ],
+ "snap": [
+ "snip",
+ "snap"
+ ]
+ }
+
+}
diff --git a/strings/fishing_tips.txt b/strings/fishing_tips.txt
new file mode 100644
index 0000000000000..eda70bb425286
--- /dev/null
+++ b/strings/fishing_tips.txt
@@ -0,0 +1,44 @@
+Did you know? The Freshness jar of natural baits actually contains kronkaine.
+Legends say The Dude once lost his wallet inside a toilet.
+Legends say a famous pirate once lost his precious coffer by the Beach.
+You could buy fish dirt cheap from the black market, but you probably won't get anything actually fresh.
+Rescue hooks can be used to snag in other people. Good for getting husks out of plasma rivers.
+Pufferfish are known for the slow yet lethal poison they store inside their liver.
+Magnet hooks are great to fish anything that's NOT a fish.
+You can perform scanning experiments with an experi-scanner and some fish. They'll give sci some extra techweb points and get you more modules for the fishing portal generator.
+Fish scanning experiments can be automatically performed with an advanced fishing rod. However to print one you need to have at least completed the first one.
+Advanced fishing rods come pre-equipped with a unexhaustible bait that ignores bait preferences of each fish, letting you catch'em all.
+Don't expect to be able to catch a lot of fish without a bait.
+Some fish (mostly predators) are strictly carnivorous and will ignore baits not made of meat or seafood, a few are picky eaters and will only go after the best of baits, while another smaller few are more or less strictly herbivore.
+You can fish at the holodeck beach, if you don't mind the fish being quite fake.
+You may find worms by digging through sand, ash and snow.
+You can revive fish by using a Lazarus Injector on them. However, using Strange Reagent would be a smarter option here.
+You can feed fish outside of an aquarium by tapping them with a can of fish feed.
+More fishing rods and fish cases can be printed at the autolathe.
+Seeking alternative ways to catch fish without bothering to do it yourself? Explosives can be thrown at fishing spots to get several (dead) fishes in a pinch.
+You can raise lobstrosities from chasm chrabs. However, lobstrosities can only be tamed with spare limbs or lavaloop fish while still young.
+Lavaloop fish make for dangerous yet somewhat effective throwing weapons against big fauna.
+The fishing portal generator has different modules, all of which can be unlocked by completing fish scanning experiments... except for the Syndicate one...
+A fish's traits influence how you can catch them. Carnivore fish will ignore dough balls, and herbivore fish ignore anything that's not from botany.
+Telescopic fishing rods can be bought from cargo.
+Once grown from chrabs and tamed, lobstrosities can be heeded to fish on fishing spots for you.
+Aquariums can be upgraded to bioelectricity generators can a specific kit. From there, you can add electric-generating fish like the anxious zip zap to generate power.
+Getting better at fishing will net you some small additional advantages, such as receiving more information when examining a fish or a fishing spot.
+The size and weight of a fish can influence the amount of reagents and fillets you can harvest from them, their force as a weapon and how easy it is to store them in containers.
+While most fish make for shoddy weapons, a few, like the swordfish and the chainsawfish, can be quite powerful. In general, the bigger they are, the more forceful they get.
+Fish can be sold to cargo. While most don't sell for very much, the biggest ones can be sold for a considerable bounty.
+The meat of fish like swordfish, salmon and pufferfish (weren't they poisonous) makes for an excellent ingredient that boosts the quality of the end product.
+Stingrays are known for their stinger, which they use to deliver venom to hostiles.
+Some species of fish can be bred into new species under the right conditions.
+Most fish don't survive outside water, so get them somewhere safe like an aquarium or a fish case, or even a toilet or a moisture trap!
+No matter how you look at it, most people won't care about fishing. Don't let that stop you. They're just jealous.
+To fish on ice you have to puncture the ice layer with a pick or shovel first.
+Depending on the kind of fish inside it and whether they're alive or dead, an aquarium can improve the beauty of the room or worsen it.
+Almost all fish can be ground in an All-in-one-Grinder. Don't think too hard about how you're fitting a giant fish into a blender. Nanotrasen technology is weird like that.
+The sludgefish from the toilets can be used as a steady supply of cheap fish and fillets due to its self-reproducing behaviour. However it's quite fragile.
+In a jiffy, you can scoop tadpoles from ponds with your bare hands, place them inside aquariums and quickly raise them into frogs.
+The legendary fishing hat isn't just cosmetic. Space carps (as well as young lobstrosities and frogs) do truly fear those who wear it.
+Have you ever heard a lobster or crab talk? Well, neither have I, but they say they're quite the fishy punsters.
+You can get an experiscanner from science to perform fish scanning experiments, which can unlock more modules for the fishing portal, as well as fishing technology nodes (better equipment) for research.
+If you have enough credits, you can buy a set of fishing lures from cargo. Each lure allows you to catch different species of fish and won't get consumed, however they need to be spun at intervals to work.
+This may sound silly, but squids and their ink sacs can be used as weapons to temporarily blind people.
\ No newline at end of file
diff --git a/tgstation.dme b/tgstation.dme
index 247b74c759aaf..aa7b0d9b190f9 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -544,6 +544,7 @@
#include "code\_globalvars\time_vars.dm"
#include "code\_globalvars\lists\achievements.dm"
#include "code\_globalvars\lists\ambience.dm"
+#include "code\_globalvars\lists\basic_ai.dm"
#include "code\_globalvars\lists\canisters.dm"
#include "code\_globalvars\lists\cargo.dm"
#include "code\_globalvars\lists\client.dm"
@@ -643,6 +644,7 @@
#include "code\controllers\subsystem\addiction.dm"
#include "code\controllers\subsystem\admin_verbs.dm"
#include "code\controllers\subsystem\ai_controllers.dm"
+#include "code\controllers\subsystem\ai_idle_controllers.dm"
#include "code\controllers\subsystem\air.dm"
#include "code\controllers\subsystem\ambience.dm"
#include "code\controllers\subsystem\area_contents.dm"
@@ -754,6 +756,7 @@
#include "code\controllers\subsystem\persistence\counter_tram_hits.dm"
#include "code\controllers\subsystem\persistence\custom_outfits.dm"
#include "code\controllers\subsystem\persistence\engravings.dm"
+#include "code\controllers\subsystem\persistence\message_bottles.dm"
#include "code\controllers\subsystem\persistence\photo_albums.dm"
#include "code\controllers\subsystem\persistence\piggy_banks.dm"
#include "code\controllers\subsystem\persistence\recipes.dm"
@@ -763,6 +766,7 @@
#include "code\controllers\subsystem\processing\acid.dm"
#include "code\controllers\subsystem\processing\ai_basic_avoidance.dm"
#include "code\controllers\subsystem\processing\ai_behaviors.dm"
+#include "code\controllers\subsystem\processing\ai_idle_behaviors.dm"
#include "code\controllers\subsystem\processing\antag_hud.dm"
#include "code\controllers\subsystem\processing\aura.dm"
#include "code\controllers\subsystem\processing\clock_component.dm"
@@ -861,6 +865,7 @@
#include "code\datums\actions\items\cult_dagger.dm"
#include "code\datums\actions\items\hands_free.dm"
#include "code\datums\actions\items\organ_action.dm"
+#include "code\datums\actions\items\reload_rebar.dm"
#include "code\datums\actions\items\set_internals.dm"
#include "code\datums\actions\items\stealth_box.dm"
#include "code\datums\actions\items\summon_stickmen.dm"
@@ -907,6 +912,7 @@
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\basic_attacking.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\befriend_target.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\climb_tree.dm"
+#include "code\datums\ai\basic_mobs\basic_ai_behaviors\emote_with_target.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\find_parent.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\nearest_targeting.dm"
#include "code\datums\ai\basic_mobs\basic_ai_behaviors\pick_up_item.dm"
@@ -1092,7 +1098,6 @@
#include "code\datums\components\cracked.dm"
#include "code\datums\components\crank_recharge.dm"
#include "code\datums\components\crate_carrier.dm"
-#include "code\datums\components\creamed.dm"
#include "code\datums\components\cuff_n_stun.dm"
#include "code\datums\components\cult_ritual_item.dm"
#include "code\datums\components\curse_of_hunger.dm"
@@ -1119,6 +1124,7 @@
#include "code\datums\components\evolutionary_leap.dm"
#include "code\datums\components\explodable.dm"
#include "code\datums\components\explode_on_attack.dm"
+#include "code\datums\components\face_decal.dm"
#include "code\datums\components\faction_granter.dm"
#include "code\datums\components\fertile_egg.dm"
#include "code\datums\components\fish_growth.dm"
@@ -1247,6 +1253,7 @@
#include "code\datums\components\spin2win.dm"
#include "code\datums\components\spinny.dm"
#include "code\datums\components\spirit_holding.dm"
+#include "code\datums\components\splat.dm"
#include "code\datums\components\splattercasting.dm"
#include "code\datums\components\squashable.dm"
#include "code\datums\components\squeak.dm"
@@ -1429,6 +1436,7 @@
#include "code\datums\elements\beauty.dm"
#include "code\datums\elements\bed_tucking.dm"
#include "code\datums\elements\befriend_petting.dm"
+#include "code\datums\elements\block_turf_fingerprints.dm"
#include "code\datums\elements\blocks_explosives.dm"
#include "code\datums\elements\body_temp_sensitive.dm"
#include "code\datums\elements\bombable_turf.dm"
@@ -1479,6 +1487,7 @@
#include "code\datums\elements\eyestab.dm"
#include "code\datums\elements\falling_hazard.dm"
#include "code\datums\elements\firestacker.dm"
+#include "code\datums\elements\fish_safe_storage.dm"
#include "code\datums\elements\floorloving.dm"
#include "code\datums\elements\footstep.dm"
#include "code\datums\elements\footstep_override.dm"
@@ -1539,6 +1548,7 @@
#include "code\datums\elements\proficient_miner.dm"
#include "code\datums\elements\projectile_drop.dm"
#include "code\datums\elements\projectile_shield.dm"
+#include "code\datums\elements\quality_food_ingredient.dm"
#include "code\datums\elements\radiation_protected_clothing.dm"
#include "code\datums\elements\radioactive.dm"
#include "code\datums\elements\ranged_armour.dm"
@@ -1858,7 +1868,6 @@
#include "code\datums\status_effects\agent_pinpointer.dm"
#include "code\datums\status_effects\buffs.dm"
#include "code\datums\status_effects\drug_effects.dm"
-#include "code\datums\status_effects\food_effects.dm"
#include "code\datums\status_effects\gas.dm"
#include "code\datums\status_effects\grouped_effect.dm"
#include "code\datums\status_effects\limited_effect.dm"
@@ -1873,9 +1882,11 @@
#include "code\datums\status_effects\buffs\bioware\cortex.dm"
#include "code\datums\status_effects\buffs\bioware\ligaments.dm"
#include "code\datums\status_effects\buffs\bioware\nerves.dm"
+#include "code\datums\status_effects\buffs\food\_food_effect.dm"
#include "code\datums\status_effects\buffs\food\chilling.dm"
-#include "code\datums\status_effects\buffs\food\food_traits.dm"
+#include "code\datums\status_effects\buffs\food\grant_trait.dm"
#include "code\datums\status_effects\buffs\food\haste.dm"
+#include "code\datums\status_effects\buffs\food\speech.dm"
#include "code\datums\status_effects\debuffs\blindness.dm"
#include "code\datums\status_effects\debuffs\choke.dm"
#include "code\datums\status_effects\debuffs\confusion.dm"
@@ -2033,6 +2044,7 @@
#include "code\game\machinery\autolathe.dm"
#include "code\game\machinery\bank_machine.dm"
#include "code\game\machinery\barsigns.dm"
+#include "code\game\machinery\big_manipulator.dm"
#include "code\game\machinery\botlaunchpad.dm"
#include "code\game\machinery\buttons.dm"
#include "code\game\machinery\cell_charger.dm"
@@ -2073,6 +2085,7 @@
#include "code\game\machinery\nebula_shielding.dm"
#include "code\game\machinery\PDApainter.dm"
#include "code\game\machinery\photobooth.dm"
+#include "code\game\machinery\portagrav.dm"
#include "code\game\machinery\prisongate.dm"
#include "code\game\machinery\prisonlabor.dm"
#include "code\game\machinery\quantum_pad.dm"
@@ -2275,6 +2288,7 @@
#include "code\game\objects\effects\landmarks\atmospherics_sanity_landmarks.dm"
#include "code\game\objects\effects\particles\acid.dm"
#include "code\game\objects\effects\particles\fire.dm"
+#include "code\game\objects\effects\particles\gravity.dm"
#include "code\game\objects\effects\particles\misc.dm"
#include "code\game\objects\effects\particles\note_particles.dm"
#include "code\game\objects\effects\particles\slime.dm"
@@ -2286,6 +2300,7 @@
#include "code\game\objects\effects\spawners\bombspawner.dm"
#include "code\game\objects\effects\spawners\costume.dm"
#include "code\game\objects\effects\spawners\gibspawner.dm"
+#include "code\game\objects\effects\spawners\message_in_a_bottle.dm"
#include "code\game\objects\effects\spawners\structure.dm"
#include "code\game\objects\effects\spawners\xeno_egg_delivery.dm"
#include "code\game\objects\effects\spawners\random\ai_module.dm"
@@ -2438,6 +2453,7 @@
#include "code\game\objects\items\devices\anomaly_releaser.dm"
#include "code\game\objects\items\devices\battle_royale.dm"
#include "code\game\objects\items\devices\beacon.dm"
+#include "code\game\objects\items\devices\broadcast_camera.dm"
#include "code\game\objects\items\devices\chameleonproj.dm"
#include "code\game\objects\items\devices\destabilizing_crystal.dm"
#include "code\game\objects\items\devices\desynchronizer.dm"
@@ -2679,6 +2695,7 @@
#include "code\game\objects\structures\curtains.dm"
#include "code\game\objects\structures\deployable_turret.dm"
#include "code\game\objects\structures\destructible_structures.dm"
+#include "code\game\objects\structures\detectiveboard.dm"
#include "code\game\objects\structures\displaycase.dm"
#include "code\game\objects\structures\divine.dm"
#include "code\game\objects\structures\door_assembly.dm"
@@ -3530,6 +3547,7 @@
#include "code\modules\awaymissions\signpost.dm"
#include "code\modules\awaymissions\super_secret_room.dm"
#include "code\modules\awaymissions\zlevel.dm"
+#include "code\modules\awaymissions\mission_code\Beach.dm"
#include "code\modules\awaymissions\mission_code\Cabin.dm"
#include "code\modules\awaymissions\mission_code\caves.dm"
#include "code\modules\awaymissions\mission_code\centcomAway.dm"
@@ -3610,8 +3628,10 @@
#include "code\modules\bitrunning\virtual_domain\domains\colossus.dm"
#include "code\modules\bitrunning\virtual_domain\domains\fredingtonfastingbear.dm"
#include "code\modules\bitrunning\virtual_domain\domains\gondola_asteroid.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\grassland_hunt.dm"
#include "code\modules\bitrunning\virtual_domain\domains\hierophant.dm"
#include "code\modules\bitrunning\virtual_domain\domains\island_brawl.dm"
+#include "code\modules\bitrunning\virtual_domain\domains\meta_central.dm"
#include "code\modules\bitrunning\virtual_domain\domains\pipedream.dm"
#include "code\modules\bitrunning\virtual_domain\domains\pirates.dm"
#include "code\modules\bitrunning\virtual_domain\domains\psyker_shuffle.dm"
@@ -3712,6 +3732,7 @@
#include "code\modules\cargo\markets\market_items\clothing.dm"
#include "code\modules\cargo\markets\market_items\consumables.dm"
#include "code\modules\cargo\markets\market_items\hostages.dm"
+#include "code\modules\cargo\markets\market_items\local_goods.dm"
#include "code\modules\cargo\markets\market_items\misc.dm"
#include "code\modules\cargo\markets\market_items\stolen_goods.dm"
#include "code\modules\cargo\markets\market_items\tools.dm"
@@ -3775,6 +3796,7 @@
#include "code\modules\client\preferences\operative_species.dm"
#include "code\modules\client\preferences\paint_color.dm"
#include "code\modules\client\preferences\parallax.dm"
+#include "code\modules\client\preferences\paraplegic.dm"
#include "code\modules\client\preferences\pda.dm"
#include "code\modules\client\preferences\persistent_scars.dm"
#include "code\modules\client\preferences\phobia.dm"
@@ -3855,6 +3877,7 @@
#include "code\modules\clothing\gloves\costume.dm"
#include "code\modules\clothing\gloves\insulated.dm"
#include "code\modules\clothing\gloves\plasmaman.dm"
+#include "code\modules\clothing\gloves\punch_mitts.dm"
#include "code\modules\clothing\gloves\special.dm"
#include "code\modules\clothing\gloves\tacklers.dm"
#include "code\modules\clothing\head\_head.dm"
@@ -4150,6 +4173,7 @@
#include "code\modules\fishing\admin.dm"
#include "code\modules\fishing\bait.dm"
#include "code\modules\fishing\fish_catalog.dm"
+#include "code\modules\fishing\fish_movement.dm"
#include "code\modules\fishing\fishing_equipment.dm"
#include "code\modules\fishing\fishing_minigame.dm"
#include "code\modules\fishing\fishing_portal_machine.dm"
@@ -4162,7 +4186,16 @@
#include "code\modules\fishing\fish\chasm_detritus.dm"
#include "code\modules\fishing\fish\fish_evolution.dm"
#include "code\modules\fishing\fish\fish_traits.dm"
-#include "code\modules\fishing\fish\fish_types.dm"
+#include "code\modules\fishing\fish\types\air_space.dm"
+#include "code\modules\fishing\fish\types\anadromous.dm"
+#include "code\modules\fishing\fish\types\freshwater.dm"
+#include "code\modules\fishing\fish\types\holographic.dm"
+#include "code\modules\fishing\fish\types\mining.dm"
+#include "code\modules\fishing\fish\types\ruins.dm"
+#include "code\modules\fishing\fish\types\saltwater.dm"
+#include "code\modules\fishing\fish\types\station.dm"
+#include "code\modules\fishing\fish\types\syndicate.dm"
+#include "code\modules\fishing\fish\types\tiziran.dm"
#include "code\modules\fishing\sources\_fish_source.dm"
#include "code\modules\fishing\sources\source_types.dm"
#include "code\modules\flufftext\Dreaming.dm"
@@ -4474,7 +4507,8 @@
#include "code\modules\library\random_books.dm"
#include "code\modules\library\skill_learning\skill_station.dm"
#include "code\modules\library\skill_learning\skillchip.dm"
-#include "code\modules\library\skill_learning\generic_skillchips\matrix_flip.dm"
+#include "code\modules\library\skill_learning\generic_skillchips\matrix_taunt.dm"
+#include "code\modules\library\skill_learning\generic_skillchips\point.dm"
#include "code\modules\library\skill_learning\generic_skillchips\rod_suplex.dm"
#include "code\modules\library\skill_learning\job_skillchips\_job.dm"
#include "code\modules\library\skill_learning\job_skillchips\chef.dm"
@@ -4729,6 +4763,7 @@
#include "code\modules\mob\living\basic\basic_defense.dm"
#include "code\modules\mob\living\basic\festivus_pole.dm"
#include "code\modules\mob\living\basic\health_adjustment.dm"
+#include "code\modules\mob\living\basic\revolutionary.dm"
#include "code\modules\mob\living\basic\tree.dm"
#include "code\modules\mob\living\basic\alien\_alien.dm"
#include "code\modules\mob\living\basic\alien\alien_ai.dm"
@@ -4779,7 +4814,6 @@
#include "code\modules\mob\living\basic\drone\inventory.dm"
#include "code\modules\mob\living\basic\drone\verbs.dm"
#include "code\modules\mob\living\basic\drone\visuals_icons.dm"
-#include "code\modules\mob\living\basic\farm_animals\deer.dm"
#include "code\modules\mob\living\basic\farm_animals\pig.dm"
#include "code\modules\mob\living\basic\farm_animals\pony.dm"
#include "code\modules\mob\living\basic\farm_animals\rabbit.dm"
@@ -4793,6 +4827,8 @@
#include "code\modules\mob\living\basic\farm_animals\cow\cow_ai.dm"
#include "code\modules\mob\living\basic\farm_animals\cow\cow_moonicorn.dm"
#include "code\modules\mob\living\basic\farm_animals\cow\cow_wisdom.dm"
+#include "code\modules\mob\living\basic\farm_animals\deer\deer.dm"
+#include "code\modules\mob\living\basic\farm_animals\deer\deer_ai.dm"
#include "code\modules\mob\living\basic\farm_animals\goat\_goat.dm"
#include "code\modules\mob\living\basic\farm_animals\goat\goat_ai.dm"
#include "code\modules\mob\living\basic\farm_animals\goat\goat_subtypes.dm"
@@ -6071,7 +6107,6 @@
#include "code\modules\tgui\states\notcontained.dm"
#include "code\modules\tgui\states\observer.dm"
#include "code\modules\tgui\states\physical.dm"
-#include "code\modules\tgui\states\reverse_contained.dm"
#include "code\modules\tgui\states\self.dm"
#include "code\modules\tgui\states\zlevel.dm"
#include "code\modules\tgui_input\alert.dm"
@@ -6197,6 +6232,7 @@
#include "code\modules\vending\clothesmate.dm"
#include "code\modules\vending\coffee.dm"
#include "code\modules\vending\cola.dm"
+#include "code\modules\vending\cytopro.dm"
#include "code\modules\vending\donk.dm"
#include "code\modules\vending\drinnerware.dm"
#include "code\modules\vending\engineering.dm"
diff --git a/tgui/docs/tutorial-and-examples.md b/tgui/docs/tutorial-and-examples.md
index 2e02f0e491acd..1b5ecab8968f9 100644
--- a/tgui/docs/tutorial-and-examples.md
+++ b/tgui/docs/tutorial-and-examples.md
@@ -75,7 +75,7 @@ Finally, the `ui_act` proc is called by the interface whenever the user used an
input. The input's `action` and `params` are passed to the proc.
```dm
-/obj/machinery/my_machine/ui_act(action, params)
+/obj/machinery/my_machine/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return
@@ -311,7 +311,7 @@ upon code review):
data["var"] = var
return data
-/obj/copypasta/ui_act(action, params)
+/obj/copypasta/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
if(..())
return
switch(action)
diff --git a/tgui/packages/tgui-panel/chat/constants.ts b/tgui/packages/tgui-panel/chat/constants.ts
index 2efc1d0a3ec06..57ad525a9a9aa 100644
--- a/tgui/packages/tgui-panel/chat/constants.ts
+++ b/tgui/packages/tgui-panel/chat/constants.ts
@@ -60,7 +60,7 @@ export const MESSAGE_TYPES = [
name: 'Radio',
description: 'All departments of radio messages',
selector:
- '.alert, .minorannounce, .syndradio, .centcomradio, .aiprivradio, .comradio, .secradio, .gangradio, .engradio, .medradio, .sciradio, .suppradio, .servradio, .radio, .deptradio, .binarysay, .newscaster, .resonate, .abductor, .alien, .changeling',
+ '.alert, .minorannounce, .syndradio, .centcomradio, .aiprivradio, .enteradio, .comradio, .secradio, .gangradio, .engradio, .medradio, .sciradio, .suppradio, .servradio, .radio, .deptradio, .binarysay, .newscaster, .resonate, .abductor, .alien, .changeling',
},
{
type: MESSAGE_TYPE_INFO,
diff --git a/tgui/packages/tgui-panel/settings/SettingsGeneral.tsx b/tgui/packages/tgui-panel/settings/SettingsGeneral.tsx
index 3599f24e70703..f1f10ba74ae21 100644
--- a/tgui/packages/tgui-panel/settings/SettingsGeneral.tsx
+++ b/tgui/packages/tgui-panel/settings/SettingsGeneral.tsx
@@ -20,11 +20,10 @@ import { FONTS } from './constants';
import { selectSettings } from './selectors';
export function SettingsGeneral(props) {
- const { theme, fontFamily, fontSize, lineHeight, statLinked, statFontSize } =
+ const { theme, fontFamily, fontSize, lineHeight } =
useSelector(selectSettings);
const dispatch = useDispatch();
const [freeFont, setFreeFont] = useState(false);
- const [statFont, setStatFont] = useState(false);
return (